cpp vector<string>删除某元素
时间: 2023-08-11 07:07:58 浏览: 111
要删除 `vector<string>` 中的某个元素,可以使用 `erase()` 函数。该函数接受一个迭代器参数,指向要删除的元素。例如,如果要删除第三个元素,可以这样做:
```cpp
vector<string> v{"foo", "bar", "baz", "qux"};
auto it = v.begin() + 2; // 第三个元素的迭代器
v.erase(it); // 删除第三个元素
```
也可以通过指定元素的值删除元素,使用 `remove()` 函数:
```cpp
vector<string> v{"foo", "bar", "baz", "qux"};
v.erase(std::remove(v.begin(), v.end(), "baz"), v.end()); // 删除值为 "baz" 的元素
```
这段代码使用了 STL 算法 `std::remove()`,该算法会将符合条件的元素移动到容器的末尾,然后返回一个迭代器,指向这些元素的起始位置。然后,`erase()` 函数删除这些元素。
相关问题
map<string, vector<string>>实例
C++中的`map`是一种关联容器,它提供了一种键值对的映射关系。在你的问题中,你想要创建一个`map`,其中的键是`string`类型,值是`vector<string>`类型。
下面是一个示例代码,展示了如何创建和使用`map<string, vector<string>>`实例:
```cpp
#include <iostream>
#include <map>
#include <vector>
int main() {
// 创建一个map实例
std::map<std::string, std::vector<std::string>> myMap;
// 向map中插入键值对
myMap["fruit"].push_back("apple");
myMap["fruit"].push_back("banana");
myMap["fruit"].push_back("orange");
myMap["color"].push_back("red");
myMap["color"].push_back("blue");
myMap["color"].push_back("green");
// 遍历map并输出值
for (const auto& pair : myMap) {
std::cout << pair.first << ": ";
for (const auto& value : pair.second) {
std::cout << value << " ";
}
std::cout << std::endl;
}
return 0;
}
```
在上面的代码中,我们首先包含了`<iostream>`、`<map>`和`<vector>`头文件,然后创建了一个`map`实例`myMap`,其中的键是`string`类型,值是`vector<string>`类型。
接下来,我们使用`push_back`函数向`map`中插入键值对。注意,由于值是`vector<string>`类型,我们可以使用`push_back`函数向对应的`vector`中添加元素。
最后,我们使用一个循环遍历`map`并输出每个键对应的值。
希望这个示例能够帮助你理解如何创建和使用`map<string, vector<string>>`实例。
vector<int> 转 vector<string>
您可以使用标准库中的 `std::transform` 函数来将一个 `vector<int>` 转换为 `vector<string>`。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
int main() {
std::vector<int> intVector = {1, 2, 3, 4, 5};
// 创建一个空的 vector<string>
std::vector<std::string> stringVector(intVector.size());
// 使用 std::transform 进行转换
std::transform(intVector.begin(), intVector.end(), stringVector.begin(), [](int num) {
return std::to_string(num);
});
// 打印转换后的 vector<string>
for (const auto& str : stringVector) {
std::cout << str << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果将会是:`1 2 3 4 5`,每个整数都转换成了字符串。