服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++ push_back()函数使用详解

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

2021-10-28 14:51К свободе C/C++

这篇文章主要介绍了C++ push_back()函数使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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;
    }
}

运行结果:

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

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

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

可以忽略这个背景。。。

到此这篇关于C++ push_back()函数使用详解的文章就介绍到这了,更多相关C++ push_back()函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_30009067/article/details/115347522

延伸 · 阅读

精彩推荐