gpt4 book ai didi

c++ - 使用删除和插入替换 vector 中的元素

转载 作者:可可西里 更新时间:2023-11-01 18:17:26 29 4
gpt4 key购买 nike

void replace(vector<string> my_vector_2, string old, string replacement){

vector<string>::iterator it;
for (it = my_vector_2.begin(); it != my_vector_2.end(); ++it){

if (*it==old){
my_vector_2.erase(it);
my_vector_2.insert(it,replacement);

}
}

}

因此,我希望此函数用字符串替换替换 vector 中所有出现的旧字符串。但是当调用这个函数时,它根本不会改变 vector 。我不确定我是否正确使用了删除和插入功能。有什么想法吗?

最佳答案

首先,您需要通过引用而不是值来传递 vector 。

void replace(vector<string>& my_vector_2, string old, string replacement){

第二次删除和插入invalidates它,你需要用 erase 返回的新迭代器更新它

it = my_vector_2.erase(it);  
it = my_vector_2.insert(it,replacement);

关于c++ - 使用删除和插入替换 vector 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15998783/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com