gpt4 book ai didi

c++ - 如何查找和删除 vector 元素中的某个字符

转载 作者:行者123 更新时间:2023-11-28 02:26:33 26 4
gpt4 key购买 nike

如您所知,我们使用 std::find 来查找元素。
但是假设我们有一个 vector ,我们想在那个 vector 的元素中找到某个字符,比如“^”。
那我们该怎么做呢?

例如看这段代码:

int main () {
vector<string> myvector;

myvector.push_back("a^b");
myvector.push_back("a");
myvector.push_back("cd^");

myvector.erase(find (myvector.begin(), myvector.end(), "^"));

for (unsigned i=0; i<myvector.size(); i++)
std::cout << ' ' << myvector.at(i) << "\t";

return 0;
}

如您所见,我只是想找到并删除所有“^”字符,但我不知道该怎么做。

最佳答案

因为你想从每个字符串中删除一个字符,vector::erase不会帮助你 - 那只能让你删除恰好是 "^" 的字符串.您将不得不遍历每个 stringvector ,并使用 erase-remove idiom :

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

如果你不会使用C++11,你可以写一个函数来做删除:

void erase_carets(std::string& str) {
str.erase(std::remove(str.begin(), str.end(), '^'), str.end());
}

std:for_each(myvector.begin(), myvector.end(), erase_carets);

关于c++ - 如何查找和删除 vector 元素中的某个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30438934/

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