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