如何将vector<string>转变为vector<int>
时间: 2023-08-10 12:05:40 浏览: 106
要将一个 `vector<string>` 转换为 `vector<int>`,可以使用 `std::transform` 算法和一个 lambda 函数,如下所示:
```c++
#include <vector>
#include <string>
#include <algorithm>
int main()
{
std::vector<std::string> strVec = {"1", "2", "3", "4", "5"};
std::vector<int> intVec;
std::transform(strVec.begin(), strVec.end(), std::back_inserter(intVec), [](const std::string& str) {
return std::stoi(str);
});
return 0;
}
```
在上面的代码中,我们先定义了一个 `std::vector<std::string>` 变量 `strVec`,其中包含了一些字符串表示的整数。然后我们定义了一个空的 `std::vector<int>` 变量 `intVec`,用于存放转换后的整数。接着使用 `std::transform` 算法,将 `strVec` 中的每个元素都转换为整数,并将其插入到 `intVec` 中。转换的过程使用了一个 lambda 函数,它将一个字符串转换为整数。最终,`intVec` 中存放的就是 `strVec` 中对应的整数了。
相关问题
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`,每个整数都转换成了字符串。
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>>`实例。