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()函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!