为什么以下代码块重复打印出"40",
vector<Square> array(81);
char c;
int d;
int i = 0;
for(c='A'; c<'J'; c=c+1)
for(d=1; d<10; d++)
array.push_back( Square(c, d));
for(int i = 0; i<81; i++)
cout << array[i].column << array[i].row << endl;
}
Run Code Online (Sandbox Code Playgroud)
而这打印出来,A1,A2,A3,....,I9
vector<Square> array(81);
char c;
int d;
int i = 0;
for(c='A'; c<'J'; c=c+1)
for(d=1; d<10; d++)
array[i++] = ( Square(c, d));
for(i = 0; i<81; i++)
cout << array[i].column << array[i].row << endl;
}
Run Code Online (Sandbox Code Playgroud)
推回是否将它放在必须通过迭代器访问的随机存储器中?在浏览向量时总是使用迭代器是否更好?
vector<Square> array(81);声明一个包含81个元素的向量.当你push_back,你插入新元素,即使用的大小将增加到82,83,...并且你现有的元素将保持不变.
所以 - 在你的第一个片段中,你打印出vector任何push_backs 之前的元素.第二个片段将元素替换为您想要的元素.