使用std::transform函数将vector<string>转换为vector<int>。
时间: 2023-09-10 08:05:05 浏览: 181
### 回答1:
std::transform函数可以用来将vector<string>转换为vector<int>,可以使用lambda表达式定义相应的转换函数,比如:
vector<string> str_vec = {"1", "2", "3", "4"};
vector<int> int_vec;
std::transform(str_vec.begin(), str_vec.end(), std::back_inserter(int_vec), [](const std::string& str) {
return std::stoi(str);
});
### 回答2:
使用std::transform函数可以将vector<string>转换为vector<int>。std::transform函数是一个通用化的算法函数,可以将一个容器中的元素逐个应用于某个函数,并将结果存储到另一个容器中。
首先,创建一个vector<string>对象和一个空的vector<int>对象,准备存储转换后的结果。
然后,使用std::transform函数进行转换。其中,第一个参数是vector<string>的起始迭代器,第二个参数是vector<string>的终止迭代器,第三个参数是vector<int>的起始位置迭代器,第四个参数是转换函数。
转换函数可以使用lambda表达式或者自定义的函数对象。对于将string转换为int的功能,可以使用stoi函数,它可以将字符串转换为整数。
最后,std::transform函数会将转换后的结果逐个存储到vector<int>中。
以下是使用std::transform函数将vector<string>转换为vector<int>的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
int main() {
std::vector<std::string> strVec{"1", "2", "3", "4", "5"};
std::vector<int> intVec;
intVec.resize(strVec.size());
std::transform(strVec.begin(), strVec.end(), intVec.begin(), [](const std::string& str) {
return std::stoi(str);
});
// 输出转换后的结果
for (const auto& num : intVec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
这样就可以将vector<string>转换为vector<int>了。转换后的结果为:1 2 3 4 5。
### 回答3:
std::transform函数是一个可以对一个范围内的元素进行转换操作的C++标准库算法。我们可以使用这个函数来将一个包含字符串的vector转换为一个包含整数的vector。
在这个转换过程中,我们需要一个转换函数来将字符串转换为整数。在这个例子中,我们可以使用std::stoi函数来实现这个转换。这个函数可以将一个字符串转换为与之相匹配的整数。
下面是一个使用std::transform函数将vector<string>转换为vector<int>的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
int main() {
std::vector<std::string> strVector = {"1", "2", "3", "4", "5"};
std::vector<int> intVector;
intVector.resize(strVector.size());
std::transform(strVector.begin(), strVector.end(), intVector.begin(), [](const std::string& str) {
return std::stoi(str);
});
for (const auto& num : intVector) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们首先定义了一个包含字符串的vector `strVector`。然后我们创建了一个与之相同大小的空vector `intVector`。接下来我们使用std::transform函数,将strVector中每个元素转换为整数,并保存到intVector中。
在std::transform函数的最后一个参数中,我们使用了一个lambda函数来定义转换操作。这个lambda函数接收一个const引用的字符串作为参数,并将其转换为整数返回。
最后,我们使用一个循环打印出intVector中的每个整数。
运行这段代码,输出结果将是:1 2 3 4 5。这表明我们已经成功将vector<string>转换为vector<int>。
阅读全文