我正在使用圖像和計算對象的氡變換。其計算變換函數接受向量作爲輸入:將值賦給std :: vector <用戶定義>
pixel p;
vector<pixel> segObj //segObj is the object segmneted from the image
像素是定義爲用戶定義的結構:
struct pixel
{
float x, y; //x,y coordinates of the pixel
};
目前,我做元素方式分配給向量:
for(int ix=0; ix < element_count; ix++)
{
f.x = xCoordArray[ix];
f.y = yCoordArray[ix];
segObj.push_back(f);
//xCoordArray and yCoordArray are computed separately
}
for循環會在處理大圖像時變慢。有沒有辦法將xCoordArray
和yCoordArray
直接分配到vector<pixel>segObj
我不期待使用載體,所以任何幫助將不勝感激。
另外, 如果xCoordArray
,yCoordArray
可以計算爲向量,有沒有辦法加入他們,使每個向量索引作爲兩個值。
你有沒有試過'segObj.reserve(element_count);''''''''''''''''vector'在插入過程中不會調整大小,'push_back'變成一個常量時間操作? – Naveen 2012-03-25 15:48:52