2013-06-18 4 views
-2

Насколько я понимаю, для вектора векторов vec.size() получает общий размер, а получает размер одного измерения для каждой строки, скажем, строки.Размер размеров для вектора векторов C++

Как получить размер другого измерения?

+0

Возможно, просто добавьте их? – ChiefTwoPencils

+0

Какие есть другие размеры? –

ответ

1

вектор :: размер всегда возвращает количество элементов. Таким образом, vec.size() получает количество векторных строк. И vec [x] .size() вернет элементы в этой строке. Это может быть разным для каждого x. Если вы поддерживаете постоянное число, то общее количество ячеек - vec.size() * vec [0] .size() (если не пусто).

+0

Это помогло мне решить вопрос. Я сделал ошибку, думая, что он получает общий размер, в то время как он получает количество векторов, которые он держит. Это то, что я искал. – PascalVKooten

4

Вектор векторов имеет, в общем, зубчатый край; нет гарантии, что другое измерение является постоянным.

+0

Но учитывая, что он равен всем, как его удобно использовать? – PascalVKooten

+0

@Dualinity: Если он равен всем, получите размер и умножьте его на размер оболочки, нет? – ChiefTwoPencils

+0

Правильно, имеет смысл. – PascalVKooten

2

Насколько я понимаю, для вектора векторов, в vec.size()

Нет, это дает число векторов внутри этого вектора. Это будет соответствовать количеству строк, если вы видите вектор как своего рода 2D-массив строк.

Таким образом, если все векторы внутри вектора вектора имеют одинаковый размер, и при условии, этот размер равен или больше 1, то

auto dim1 = vec.size(); 
auto dim2 = vec[0].size(); 
Смежные вопросы