Member 11807654 Ответов: 2

Как изменить значение кортежа в списке?


привет. Я хочу обновить значения в кортежах списка. кортежи в списке содержат вершины графа и степень каждой вершины. Я использовал библиотеку igraph для работы с графом. Я написал следующий код. но значение кортежа в списке d не изменяется (я выделил жирным шрифтом строку, которую имею в виду). как я могу решить эту проблему?
std::list<std::tuple<int, int> >::iterator it;
list<std::tuple<int, int> > d;

it = d.begin();

for (int i=0;i<igraph_vcount(&graph);i++)
{
    tuple<int, int> f1=   it._Ptr[0]._Myval;
    std::get<1>(f1) = static_cast<int>( VECTOR(v)[i]);
    std::advance(it,1);
    }


Что я уже пробовал:

Я использую visual studio 2012.

2 Ответов

Рейтинг:
2

Maciej Los

Насколько я помню, кортеж неизменен. Это означает, что вы не можете изменить его после создания.
Вы можете использовать массив вместо кортежа.

Видеть:
< tuple> - Ссылка на C++ [^]


Рейтинг:
1

Dave Kreskowiak

Единственный способ изменить значение в кортеже - это создать новый Кортеж со значениями из старого кортежа и тем, который вы хотите изменить, и вернуть его.


Member 11807654

Большое спасибо. вы хотите сказать, что я должен удалить старый кортеж и сделать новый?

Dave Kreskowiak

Google для "кортежа C++". Там тонны документации.