Я не уверен, что делает эта строка кода.Объявление вектора вектора вектора C++
vector<vector<A>> someth;
Означает ли это, что создает вектор с векторами элементов с объектами класса A? Может ли кто-нибудь объяснить это?
Thanks
Я не уверен, что делает эта строка кода.Объявление вектора вектора вектора C++
vector<vector<A>> someth;
Означает ли это, что создает вектор с векторами элементов с объектами класса A? Может ли кто-нибудь объяснить это?
Thanks
Да.
отметить также, что ваш синтаксис не поддерживается до того C++ 11:
vector<vector<A> > someth;
является Преждеосвященных-C++ 11 синтаксис. До этого >>
рассматривался как оператор бит-сдвига, поэтому вы получили ошибку компилятора для некоторых компиляторов.
Это фактически создает пустой vector
, который может содержать объекты типа vector<A>
.
маленькая деталь, но я думал, что синтаксис был приемлемым в C++ 0x? – helloworld922
@ helloworld922 C++ 0x - C++ 1. –
Ах, хорошо. Справедливо. – helloworld922
Да, это создает вектор, элементы которого являются векторами, элементами которых являются объекты A. Стоит отметить, что это объявление действует только в C++ 11. До этого >>
был интерпретирован как символ >>
(читайте). Он должен быть объявлен vector<vector<A> > someth;
(с пробелом).
да, это именно то, что это означает, это вектор векторов А.
Исправить. В основном
someth[i]
возвращает вектор. И
someth[i][j]
возвращает A.
Одна вещь необходимо обратить внимание на то, что там должно быть пространство между двумя «>» s. Должно быть
vector<vector<A> > someth;
Пространство необходимо только для компиляторов pre-C++ 11. –
http://stackoverflow.com/questions/8660303/c-creating-vector-of-vectors –