C ++ вектор объявления векторов - PullRequest
3 голосов
/ 03 марта 2012

Я не совсем уверен, что делает эта строка кода.

 vector<vector<A>> someth;

Означает ли это, что создает вектор с векторами элементов с объектами класса A?Может кто-нибудь объяснить это?

Спасибо

Ответы [ 4 ]

8 голосов
/ 03 марта 2012

Да.

Также обратите внимание, что ваш синтаксис не поддерживается до C ++ 11:

vector<vector<A> > someth;

является синтаксисом до C ++ 11.До этого >> обрабатывался как оператор сдвига битов, поэтому вы могли получить ошибку компиляции на некоторых компиляторах.

Это фактически создает пустой vector, который может содержать объекты типа vector<A>.

4 голосов
/ 03 марта 2012

Да, это создает вектор, элементы которого являются векторами, элементы которых являются объектами А.Стоит отметить, что это объявление действительно только в C ++ 11.До этого >> интерпретировался как символ >> (чтение из).Он должен быть объявлен vector<vector<A> > someth; (с пробелом).

3 голосов
/ 03 марта 2012

Правильно.В основном

someth[i]

возвращает вектор.И

someth[i][j]

возвращает A.

Необходимо обратить внимание на то, что между двумя «>» должен быть пробел.Должно быть

vector<vector<A> > someth;
1 голос
/ 03 марта 2012

да, это именно то, что означает, это вектор векторов А.

...