爲什麼以下代碼塊打印出 「40」 反覆,矢量括號語法VS迭代
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;
}
鑑於此打印出,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;
}
是否推回到必須通過迭代器訪問的隨機存儲器中?在查看矢量時總是使用迭代器更好嗎?
沒有其他人提到,你可能一直在試圖實現與'陣列(81 );'可以用'reserve(81);'完成。 http://en.cppreference.com/w/cpp/container/vector/reserve – BoBTFish