如何将vector<string>转变为vector<int>
时间: 2023-08-10 17:05:40 浏览: 198
要将一个 `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`,每个整数都转换成了字符串。
vector<vector<int>> snapshot(76,vector<int>(76)); vector<pair<int,int>> link_table; vector<string> name_;
这是一个定义了三个变量的语句:
- `snapshot` 是一个二维的 vector,其大小为 76 行 76 列,每个元素都是 int 类型。
- `link_table` 是一个 pair<int, int> 类型的 vector,用于存储两个 int 值组成的键值对。
- `name_` 是一个字符串类型的 vector,用于存储多个字符串。
需要注意的是,这里定义的变量都没有被初始化,其值是未知的。如果需要使用这些变量,需要先对它们进行初始化。
阅读全文