Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > vector


Автор: wpp 17.8.2003, 19:27
Есть такая штука typedef vector<int> vector_int;
vector<vector_int> vv; Как получить итератор на vector_int?

Автор: mr.DUDA 17.8.2003, 22:15
Так:
Код
       typedef vector<int> vector_int;
       typedef vector<vector_int> v_vector_int;
       v_vector_int vec;
       // ... заполнение вектора и т.д.

       // получаем итератор внутри вектора векторов
       v_vector_int::iterator iter1 = vec.begin();

       // .... можем продвигаться по вектору векторов:  iter1++

       // теперь, когда надо, получаем итератор внутри вектора int'ов
       vector_int::iterator iter2 = (*iter1).begin();
       int  value =  *iter2;


Принцип тот же самый, что для простого двухмерного массива (или указателя на массив указателей).

Автор: DENNN 18.8.2003, 10:27
Или просто написать
Код

vector<vector_int>:iterator

Автор: mr.DUDA 18.8.2003, 11:34
Цитата

Код
vector<vector_int>:iterator

// не пойдет. надо:
vector<vector_int>::iterator

ИМХО, typedef'ы полезны для упрощения кода.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)