Здравствуйте, Igore, Вы писали:
I>Здравствуйте, emergen, Вы писали:
E>>А если вместо второго аргумента поставить указатели на объект типа
E>>как в таком случае будет выглядеть цикл?
I>Точно так же:
I>I>struct Test
I>{
I> int i;
I>};
I>std::vector< std::tuple< int, Test* > > vec1;
I>for( auto& it : vec1 )
I>{
I> std::get< 1 >( it )->i = std::get< 0 >( it );
I> //Или так
I> int index;
I> Test* pointer;
I> std::tie( index, pointer) = it;
I> pointer->i = index;
I>}
I>//Если использовать pair то можно так
I>std::vector< std::pair< int, Test* > > vec2;
I>for( auto& it : vec2 )
I>{
I> it.second->i = it.first;
I>}
I>
я так понял что std::tuple плох тем что нельзя явно (статически) задать значения и размер массива
т.е. нельзя написать std::tuple<int, MyObject(), 3 > = { (1, .. ), (3, .. ), (3, .. )}