[英]C++ vector input through a loop
我试图通过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_back
和std::getline
: -
std::string sn; //temporary string
for(int i = 0; StudentNumbers > i; i++){
std::getline(std::cin, sn);
StudentNames.push_back(sn);
}
然后,您可以将ith名称作为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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.