c++ , std::vector<int>,将其中的元素进行拼接,指定用-进行间隔拼接
时间: 2024-05-08 10:18:59 浏览: 85
您可以使用以下代码将 vector 中的元素拼接成字符串,用 "-" 进行间隔:
```c++
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<int> v{1, 2, 3, 4, 5};
string result;
for (int i = 0; i < v.size(); i++) {
result += to_string(v[i]);
if (i != v.size() - 1) {
result += "-";
}
}
cout << result << endl;
return 0;
}
```
输出结果为:1-2-3-4-5
相关问题
c++, 将std::vector<int>将里面的多个值进行拼接,用==进行间隔处理
很高兴为您解答问题!
对于您的问题,我建议您使用以下代码进行拼接:
```c++
std::vector<int> vec{1, 2, 3, 4, 5};
std::string str;
for(auto i : vec){
str += std::to_string(i) + "==";
}
str.pop_back(); //去掉最后一个"=="
```
这里利用了std::to_string()函数将int类型转为字符串类型,并使用"+"将字符串进行拼接,最后用pop_back()函数去掉最后一个"=="即可。
希望能帮到您!
D:\app\textpolyfit\main.cpp|81|error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'std::vector<double>')|
这个错误的意思是你正在尝试将一个 `std::vector<double>` 类型的数据对象插入到 `std::ostream` 类型的输出流中,但是 C++ 编译器不知道如何将这个 `std::vector<double>` 类型的对象转换为 `std::ostream` 类型。
你需要在代码中指定如何将 `std::vector<double>` 类型的数据转换为字符串类型的内容,然后再将其插入到输出流中。例如,你可以使用循环遍历 `std::vector` 中的每个元素,并将它们转换为字符串类型,然后将其拼接成一个字符串,最后将这个字符串插入到输出流中。
或者你可以使用 `std::copy` 算法将 `std::vector` 中的元素复制到一个 `std::ostream_iterator` 对象中,从而将其插入到输出流中。例如:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main() {
std::vector<double> vec = {1.0, 2.0, 3.0, 4.0, 5.0};
std::copy(vec.begin(), vec.end(), std::ostream_iterator<double>(std::cout, " "));
std::cout << std::endl;
return 0;
}
```
这段代码将会输出:`1 2 3 4 5`。
阅读全文