std::vectorstd::string删除指定元素
时间: 2024-03-15 15:40:16 浏览: 28
std::vector<std::string>是C++标准库中的容器,用于存储字符串类型的元素。要删除指定元素,可以使用以下方法:
1. 使用erase()函数:可以通过指定要删除的元素的位置或者迭代器来删除元素。例如,如果要删除第三个元素,可以使用以下代码:
```
std::vector<std::string> vec = {"apple", "banana", "orange"};
vec.erase(vec.begin() + 2);
```
这将删除"orange"元素。
2. 使用remove()和erase()函数的组合:remove()函数用于将指定元素移动到容器的末尾,并返回一个指向新的逻辑末尾的迭代器。然后,可以使用erase()函数将末尾的元素删除。例如,如果要删除所有值为"apple"的元素,可以使用以下代码:
```
std::vector<std::string> vec = {"apple", "banana", "orange", "apple"};
vec.erase(std::remove(vec.begin(), vec.end(), "apple"), vec.end());
```
这将删除所有值为"apple"的元素。
3. 使用循环遍历删除:可以使用循环遍历容器,找到要删除的元素,并使用erase()函数删除它。例如,如果要删除所有长度为3的字符串,可以使用以下代码:
```
std::vector<std::string> vec = {"apple", "banana", "orange"};
for (auto it = vec.begin(); it != vec.end(); ) {
if (it->length() == 3) {
it = vec.erase(it);
} else {
++it;
}
}
```
这将删除所有长度为3的字符串。