有沒有辦法在C++中將值添加到vector
的中間?說我有:添加到std :: vector的中間
vector <string> a;
// a gets filled up with "abcd", "wertyu", "dvcea", "eafdefef", "aeefr", etc
,我想分手的一個字符串,並把所有的作品放回vector
。我會怎麼做?我打破的字符串可以是任何地方,索引= 0,某處在中間或索引= a.size() - 1
。
有沒有辦法在C++中將值添加到vector
的中間?說我有:添加到std :: vector的中間
vector <string> a;
// a gets filled up with "abcd", "wertyu", "dvcea", "eafdefef", "aeefr", etc
,我想分手的一個字符串,並把所有的作品放回vector
。我會怎麼做?我打破的字符串可以是任何地方,索引= 0,某處在中間或索引= a.size() - 1
。
您可以通過編寫
v.insert(v.begin() + i, valueToInsert);
然而插入一個vector
在i
的位置,這是不是很有效;它的運行時間與元素插入後元素的數量成正比。如果您打算分割字符串並將其添加回去,則使用支持O(1)插入和刪除的std::list
要好得多。
你可以做到這一點,但它會很慢:
int split = 3; // where to split
a.insert(a.begin()+index, a[index].substr(0, split));
a[index+1] = a[index+1].substr(split);
哦。我的矢量很短,所以性能不是問題。然而。我想我不得不使用矢量出於某種原因或另一個原因。我必須檢查 – calccrypto 2011-01-26 01:46:29