C++ push_back()函数使用详解
最近在学习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++ push_back()函数使用详解的文章就介绍到这了,更多相关C++ push_back()函数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
C++ 中"emplace_back" 与 "push_back" 的区别
C++ 中"emplace_back" 与 "push_back" 的区别 emplace_back和push_back都是向容器内添加数据. 对于在容器中添加类的对象时, 相比于push_back,emplace_back可以避免额外类的复制和移动操作. "emplace_back avoids the extra copy or move operation required when using push_back." 参见: http:
-
C++ push方法与push_back方法的使用与区别
[摘要] push与push_back是STL中常见的方法,都是向数据结构中添加元素.初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析.此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍.详见下文. list 也是使用 push_back . [正文] push_back 方法介绍 vector::void push_back (const value_type& val); vector
-
C++ push_back()函数使用详解
最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上.在进行到划痕显示的,由于视频是实时采集的,检测到的画笔位置坐标会不断更新,但是现在需要将划痕留在视频图像上. 经过查阅,push_back()函数可以实现这个功能,首先他存在于vector头文件中,显然和vector有关,其功能是为指定vector容器尾部添加数据,并且该vector的容量随压入数据不断扩大,新压入数据和旧数据共存不会溢出.为了更加形
-
C++头文件algorithm中的函数功能详解
目录 1. 不修改内容的序列操作 (1)all_of (2)any_of (3)none_of (6)find_if (7)find_if_not (8)find_end (10)adjacent_find (12)count_if (15)is_permutation (16)search 2. 修改内容的序列操作 (1)copy (2)copy_n (3)copy_if (4)copy_backward (5)move (6)move_backward (7)swap (8)swap_ran
-
C++ move()函数案例详解
要了解move函数首先弄清左值引用和右值引用. 左值.左值引用.右值.右值引用 1.左值和右值的概念 左值是可以放在赋值号左边可以被赋值的值:左值必须要在内存中有实体: 右值当在赋值号右边取出值赋给其他变量的值:右值可以在内存也可以在CPU寄存器. 一个对象被用作右值时,使用的是它的内容(值),被当作左值时,使用的是它的地址. 2.引用 引用是C++语法做的优化,引用的本质还是靠指针来实现的.引用相当于变量的别名.
-
C++Vector容器常用函数接口详解
目录 一.基础框架 二.迭代器实现 三.size capacity resize reserve 四.insert,erase 五.pop_back,push_back 六.operator[] 七.构造函数 析构函数 赋值重载 一.基础框架 template<class T> class vector { public: typedef T* iterator; typedef const T* const_iterator; private: iterator _start;//指向第一个
-
C++ 中const修饰虚函数实例详解
C++ 中const修饰虚函数实例详解 [1]程序1 #include <iostream> using namespace std; class Base { public: virtual void print() const = 0; }; class Test : public Base { public: void print(); }; void Test::print() { cout << "Test::print()" << end
-
Linux 在Shell脚本中使用函数实例详解
Linux 在Shell脚本中使用函数实例详解 Shell的函数 Shell程序也支持函数.函数能完成一特定的功能,可以重复调用这个函数. 函数格式如下: 函数名() { 函数体 } 函数调用方式: 函数名 参数列表 实例:编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果. root@ubuntu:/home/study# vi test3 #!/bin/bash add(){ a=$1; b=$2; z=`expr $a + $b`; echo "The sum is $z&
-
基于js的变量提升和函数提升(详解)
一.变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分. 上个简历的例子如: console.log(global); // undefined var global = 'global'; console.log(global); // global function fn () { console.log(a); // undefined var a = 'aaa';
-
JavaScript中push(),join() 函数 实例详解
定义和用法 push方法 可向数组的末尾添加一个或多个元素,并返回一个新的长度. join方法 用于把数组中所有元素添加到一个指定的字符串,元素是通过指定的分隔符进行分割的. 语法 arrayObject.push(newelement1,newelement2,....,newelementX) arrayObject.join(separator). 参数描述newelement1必需.要添加到数组的第一个元素.newelement2可选.要添加到数组的第二个元素.newelementX可选
-
JavaScript中eval()函数用法详解
eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 复制代码 代码如下: eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. eval()函数用法详解: 此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eva
-
C++中函数指针详解及代码分享
函数指针 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,如同数组的名字就是数组的起始地址. 1.函数指针的定义方式:data_types (*func_pointer)( data_types arg1, data_types arg2, ...,data_types argn); c语言函数指针的定义形式:返回类型 (*函数指针名称)(参数类型,参数类型,参数类型,-); c++函数指针的定义形式:返回类型 (类名
随机推荐
- dojo 之基础篇
- Go语言转换所有字符串为大写或者小写的方法
- mysql登录遇到ERROR 1045问题解决方法
- Angularjs中的页面访问权限怎么设置
- PHP自定义函数格式化json数据示例
- Android 串口通信编程及串口协议分析
- 删除EM,强制结束EM进程后,启动数据库ORA-00119,ORA-00132报错的解决方法
- Javascript-Mozilla和IE中的一个函数直接量的问题分析
- PHP使用array_fill定义多维数组的方法
- php防止网站被刷新的方法汇总
- JScript中遍历Request表单参数集合的方法
- 清华大学出版的事半功倍系列 javascript全部源代码
- PHP开发中常用的十个代码样例
- 使表格的标题列可左右拉伸jquery插件封装
- 浅析jquery的js图表组件highcharts
- jQuery插件 selectToSelect使用方法
- IIS真正能用的ISAPI-Rewrite图片防盗链规则写法
- C#常见算法面试题小结
- Android View事件机制 21问21答
- spring-boot整合ehcache实现缓存机制的方法