欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

C++ push_back()函数使用详解

时间:2021-08-03 08:58:39|栏目:C代码|点击:

最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上。在进行到划痕显示的,由于视频是实时采集的,检测到的画笔位置坐标会不断更新,但是现在需要将划痕留在视频图像上。
经过查阅,push_back()函数可以实现这个功能,首先他存在于vector头文件中,显然和vector有关,其功能是为指定vector容器尾部添加数据,并且该vector的容量随压入数据不断扩大,新压入数据和旧数据共存不会溢出。为了更加形象地了解其功能,用C++编写了一段简单的测试代码,建立一个vector并将大小为10的数组数据利用push_back()逐个压入其中,具体代码如下:

#include <iostream>
#include <string>
#include <vector>

using namespace std ;

int main(int argc, char const *argv[])
{
	vector<char> str;
	char str_push[10] = { 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' ,'h' , 'i' , 'j'};
	while(true)
	{
		for (int i = 0 ; i < 10 ; i++ )
		{
			str.push_back(str_push[i]) ;
			cout<<"size of str is : "<<str.size()<<endl<<"date of str is : " ;
			for (int j = 0; j < str.size(); j++)
			{
				cout<<str.at(j)<<" , " ;
			}
			cout<<endl ;
		}
		return 0;
	}
}

运行结果:

在这里插入图片描述

可以看出,str随着数据不断压入容量也跟着不断扩大。利用push_back()函数继续实现开始提到的划痕显示,建立一个vector容器用于存储画笔坐标点数据,push_back()函数将不断更新的坐标数据压入该容器中,即可实现划痕停留显示。最终显示效果如下:

在这里插入图片描述

可以忽略这个背景。。。

上一篇:在编程语言中怎样定义队列及其使用(C++)

栏    目:C代码

下一篇:C程序中唯一序列号的生成实例详解

本文标题:C++ push_back()函数使用详解

本文地址:http://www.codeinn.net/misctech/163859.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有