gpt4 book ai didi

c++ - 在for循环中修改两个相同类型的 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:25 27 4
gpt4 key购买 nike

我想在同一循环中修改存储在同一类型 T 的两个 vector 中的值。例如,假设我有两个整数 vector :

std::vector<int> student_ids;   
std::vector<int> teacher_ids;

现在我想同时遍历这两个 vector ,现在只显示每个值。例如:

for(int id : student_ids, teacher_ids)
{
std::cout << id << "\n";
}

我怎样才能做到这一点?

最佳答案

通过这种方式,您可以在一个循环中迭代两个 vector ,但请记住如果两个 vector 的大小不同则检查边界

std::vector <int>::iterator it1 = student_ids.begin();
std::vector <int>::iterator it2 = teacher_ids.begin();

while(it1 != student_ids.end() || it2 != teacher_ids.end()) {
if(it1 != student_ids.end()) {
std::cout << "Student: " << *it1 << std::endl;
++it1;
}
if(it2 != teacher_ids.end()) {
std::cout << "Teacher: " << *it2 << std::endl;
++it2;
}
}

否则,如果您确定两个 vector 的大小相同,只需将||替换为&&即可去掉循环中的 if 条件,如下所示:

for(; it1 != student_ids.end() && it2 != teacher_ids.end(); ++it1, ++it2) {
std::cout << "Student: " << *it1 << std::endl;
std::cout << "Teacher: " << *it2 << std::endl;
}

关于c++ - 在for循环中修改两个相同类型的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39017468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com