通过循环C++矢量输入

C++ vector input through a loop

本文关键字:输入 C++ 循环      更新时间:2023-10-16

>我正在尝试通过 for 循环将多个字符串添加到一个向量中,我可以用数组轻松做到这一点,但我在向量上做同样的事情时遇到了麻烦。下面是我想尝试转换为向量的数组示例。

数组样式

String StudentNames[];
int StudentNumbers;
for(int i = 0; StudentNumbers > i; i++){
cin >> StudentNames[i];
}

矢量样式

vector<string> StudentNames;
int StudentNumbers;
//How do i add a for loop using vector and add strings to it similar to the array above?

使用 std::vector::push_backstd::getline 作为 :-

std::string sn; //temporary string
for(int i = 0; StudentNumbers > i; i++){
std::getline(std::cin, sn); 
StudentNames.push_back(sn); 
}

然后,您可以访问第 i 个名称作为StudentNames[i]

一种方法是为循环创建具有正确大小的向量:

int StudentNumbers = ....;
std::vector<std::string> studentNames(StudentNumbers);
for(auto it = studentNames.begin(), end = studentNames.end(); it != end; ++it){
  std::cin >> *it;
}

int StudentNumbers = ....;
std::vector<std::string> studentNames(StudentNumbers);
for(auto& s = 0; studentNames){
  std::cin >> s;
}