有没有办法在C ++中将值添加到vector
的中间?说我有:
vector <string> a;
// a gets filled up with "abcd", "wertyu", "dvcea", "eafdefef", "aeefr", etc
我希望打破其中一个字符串并将所有部分放回vector
。我该怎么办?我打破的字符串可以是任何地方,索引= 0,中间某处或索引= a.size() - 1
。
答案 0 :(得分:9)
您可以通过编写
插入位置vector
的{{1}}
i
然而,这不是很有效;它在插入元素后与元素数量成比例地运行。如果您打算拆分字符串并重新添加它们,那么最好使用v.insert(v.begin() + i, valueToInsert);
,它支持在任何地方插入和删除O(1)。
答案 1 :(得分:1)
你可以这样做,但它会很慢:
int split = 3; // where to split
a.insert(a.begin()+index, a[index].substr(0, split));
a[index+1] = a[index+1].substr(split);