По какой-то причине изменение размера этого двухмерного вектора в моем классе не работает. Спасибо за вашу помощь!Изменение размера 2d вектор - ошибка
..
Map::Map(const unsigned int& w,
const unsigned int& h,
const unsigned int& s)
: width(w), height(h), size(s)
{
squares.resize(width);
for (unsigned int i = 0; i < width; ++i)
{
squares[i].resize(height); // error here
for (unsigned int j = 0; j < height; ++j)
{
squares[i][j] = Square(sf::Vector2f(i * size, j * size));
}
}
}
std::vector<std::vector<Square>> squares;
..
Некоторые сообщения об ошибках:
C: \ MinGW \ Bin .. \ Lib \ НКУ \ mingw32 \ 4.6.2 \ включать \ C++ \ бит \ stl_uninitialized.h | 481 | instanziiert von »static void std :: __ uninitialized_default_n_1 < TrivialValueType> :: _uninit_default_n (_ForwardIterator, _Size) [с _ForwardIterator = Square *, _Size = unsigned int, bool _TrivialValueType = false]« |
c: \ mingw \ bin .. \ lib \ gcc \ mingw32 \ 4.6.2 \ include \ C++ \ bits \ stl_uninitialized.h | 529 | instanziiert von »void std :: __ uninitialized_default_n (_ForwardIterator, _Size) [с _ForwardIterator = Square *, _Size = unsigned int]« |
У Square есть конструктор по умолчанию? – Peter
рассмотрите возможность использования boost :: multi_array вместо вложенных векторов – aryjczyk
Да, у него есть конструктор по умолчанию: Square (const sf :: Vector2f & pos); – user1429101