gpt4 book ai didi

c++ - 从 vector 字符串 C++ 中删除项目

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:26 25 4
gpt4 key购买 nike

我有一个 vector ,它的内容是这样的..

std::vector<string> vec;

vec.push_back("XXXX_LLLL");
vec.push_back("XXXX_HHHH");
vec.push_back("XXXX_XXXX");

我想遍历 vector 并从字符串中删除“_”。我试过使用 find-erase idiom as so,我用一个结构来找到 _。

vec.erase(remove_if(vec.begin(), vec.end(), IsUnderScore2()),vec.end());

但我意识到它并没有遍历我的 vector 字符串中的每个单独的字符串,所以它永远不会删除下划线。是否有另一种迭代 vector 的方法,它是单个组件,可以帮助我吗?

最佳答案

遍历 vector 并在每个字符串上使用 erase-remove 习惯用法,而不是像您现在正在做的那样在 vector 元素上使用

std::vector<string> vec;

vec.push_back("XXXX_LLLL");
vec.push_back("XXXX_HHHH");
vec.push_back("XXXX_XXXX");

for(auto& str : vec) {
str.erase(std::remove(str.begin(), str.end(), '_'),
str.end());
}

C++03 版本:

for(std::vector<std::string>::iterator it = vec.begin(), it != vec.end(), ++it) {
it->erase(std::remove(it->begin(), it->end(), '_'),
it->end());
}

关于c++ - 从 vector 字符串 C++ 中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24395058/

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