Tôi đang cố gắng tạo lưới có bậc hai với các ô có số tăng dần.sự cố khi khởi tạo vec tơ vectơ của loại tự động inc
#include <iostream>
#include <vector>
class Simple
{
public:
Simple(): id(genId()) {}
static int genId()
{
static int g_id = 0;
return ++g_id;
}
int id;
};
typedef std::vector< std::vector<Simple> > SimpleGrid;
void printSimpleGrid(SimpleGrid& grid)
{
for(int i = 0; i < grid.size(); i++) {
for(int j = 0; j < grid[i].size(); j++) {
std::cout << grid[i][j].id << " ";
}
std::cout << std::endl;
}
}
int main()
{
int dim = 3;
SimpleGrid test(dim);
for (int i=0; i<dim; i++) {
std::vector<Simple> row(dim);
test[i] = row;
}
printSimpleGrid(test);
return 0;
}
tôi nhận được kết quả này:
1 1 1
2 2 2
3 3 3
đó khác với những gì tôi mong đợi:
1 2 3
4 5 6
7 8 9
Tôi đang làm gì sai?
(Tôi đang sử dụng Code :: Blocks 12,11 rev 8629 với SDK phiên bản 1.13.14)
Bạn có chắc chắn về điều đó không? Bởi vì tôi nhận được kết quả chính xác http://coliru.stacked-crooked.com/a/ba4517515949b7db – 101010
@ 40two Có, tôi chỉ cần sao chép nó. Có lẽ nó chỉ là một lỗi trong phiên bản SDK của tôi. ... nhờ lời nhắc Coliru :) – Wolf
Có lẽ vì tôi cũng nhận được kết quả chính xác với VC++ 2013. – 101010