将长度未定的字符串输入转为数组
一行输入,数组中的数字用逗号隔开。
例如:
输入为:
32,231
则表示数组{32, 231}
32,24,54,321 ====>> {32,24,54,321}
字符串==> vector
string input;
getline(cin, input); // 读取一行输入
stringstream ss(input); // 将输入字符串转换为stringstream
vector<int> nums;
int num;
char delimiter;
while (ss >> num) { // 使用>>运算符逐个读取数字
nums.push_back(num);
ss >> delimiter; // 读取逗号
}
多行输入
eg:
物品数量N=5件
背包承重为M=10
重量w分别是2 2 6 5 4
价值v分别是6 3 5 4 6
int n, m;
std::cin >> n >> m;
std::vector<int> v1(n);
for (int i = 0; i < n; i++) {
std::cin >> v1[i];
}
std::vector<int> v2(m);
for (int i = 0; i < m; i++) {
std::cin >> v2[i];
}
将长度未定的数字输入转为数组
数字与数字之间用空格隔开
int a;
vector<int> vec;
while(cin >> a) {
vec.push_back(a);
if(getchar() == '\n') break;//关键
}
数字与字符串交替输入
2
AV
XC
3
ASAS
AAS
ASS
int a, b;
cin >> a;
getchar();
vector<string> vec1(a);
for(int i = 0; i < a; i++) getline(cin, vec1[i]);
cin >> b;
getchar();
vector<string> vec2(b);
for(int i = 0; i < b; i++) getline(cin, vec2[i]);