第一个 for 循环 国际我; for (i = 0; i 如果 (vec.size() == 0) { cout } 别的 { cout } }}第二个 for 循环cout for(自动编号:vec) cout cout为什么当我使用第一个 for 循环显示 vector 中的所有元素时,我在 vector 末尾得到“0”。但是,当我使用范围 for 循环时,我没有得到零。 最佳答案 在第一个循环中,当 i 到达 vec.size() 时, vec[i] 超出 vec 的边界,这导致 undefined behaviour (UB)。您需要将循环条件从 i<=vec.size() 更改为 i<vec.size() 。此外,您对循环内 vec.size() == 0 的检查永远不会为真。该检查需要移至循环上方。if (vec.size() == 0) { cout << "[] The list is Empty" << endl;}for (i=0; i<vec.size(); i++) { cout <<vec[i] << " ";}另一方面,ranged-based for loop 精确地迭代所有元素,让我们远离这些麻烦。关于c++ - 显示 vector 的所有元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62144638/
10-14 00:08