再将刚刚的string转换为vector<A> v
时间: 2023-09-04 20:11:09 浏览: 91
可以使用stringstream和getline函数将字符串按照指定的分隔符(例如空格)分割成多个子串,然后将每个子串转换成对应的类型并存入vector中。具体实现如下:
```c++
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
struct A {
int x, y;
};
int main() {
string s = "1 2 3 4 5 6";
vector<A> v;
stringstream ss(s);
string str;
while (getline(ss, str, ' ')) { // 按照空格分割字符串
int x = stoi(str); // 将子串转换成int类型
getline(ss, str, ' ');
int y = stoi(str);
v.push_back({x, y}); // 存入vector中
}
for (auto a : v) {
cout << a.x << " " << a.y << endl;
}
return 0;
}
```
输出结果为:
```
1 2
3 4
5 6
```
相关问题
java vector<vector<String>>转list<list<String>>
可以使用以下代码将 Java 中的 vector<vector<String>> 转换为 list<list<String>>:
```
Vector<Vector<String>> vec = new Vector<>();
List<List<String>> list = new ArrayList<>();
// 添加数据到 vec
for (Vector<String> v : vec) {
List<String> l = new ArrayList<>(v);
list.add(l);
}
```
希望能够帮到您!如果您还有其他问题,欢迎随时问我。
A是一个存放数据的类,如何将vector<A> v转化为string类型
要将vector<A> v转化为string类型,需要定义A类的输出运算符<<,并利用stringstream将每个A对象转化为字符串,然后将这些字符串拼接成一个大的字符串。
例如,假设A类有属性int id和string name,定义输出运算符如下:
```
class A {
public:
int id;
string name;
friend ostream& operator<<(ostream& os, const A& a) {
os << a.id << "," << a.name;
return os;
}
};
```
然后可以使用如下代码将vector<A> v转化为string类型:
```
vector<A> v = { {1, "John"}, {2, "Mary"}, {3, "Bob"} };
stringstream ss;
for (const auto& a : v) {
ss << a << ";"; // 用分号分隔每个A对象的字符串表示
}
string result = ss.str(); // 转化为字符串
```
这样,result的值就是"1,John;2,Mary;3,Bob;"。
阅读全文