簡體   English   中英

在定義的位置初始化向量向量 - C ++

[英]Initialize a vector of vectors at a defined location - C++

是否可以在指定位置初始化點矢量矢量?

std::vector<std::vector<CV::Point> vecvec;
std::vector<CV::Point> vecpnt;
CV::Point pnt;
pnt.x = px;
pnt.y = py;
vecpnt.push_back(pnt);

然后插入/在推vecpnt /到vecvec的第二排。 假設vecvec不是空的。

我試過了:

vecvec[location].push_back(vecpnt); // Say _location_ is set to two.

我沒有錯誤,但我的代碼在編譯后立即中止。

謝謝你的幫助。

你需要先調整你的vecvec大小。 它應該有多少“位置”? 我們來說MaxLocations。 然后你做

vecvec.resize(MaxLocations);
vecvec[location] = vecpnt;

如果您事先不知道尺寸,可以這樣做:

if(location >= vecvec.size())
{
    vecvec.resize(location+1);    
}
vecvec[location] = vecpnt;

std::vector<T>初始化大小為0,因此vecvec[2]很可能會導致崩潰。 您可以使用特定大小初始化vecvec

std::vector<std::vector<CV::Point> vecvec(10);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM