typedef std::pair<int, bool> acq_pair; //edge, channel_quality
typedef std::pair<int, acq_pair> ac_pair;
typedef std::multimap<int, acq_pair> ac_map;
typedef ac_map::iterator It_acq;
int bits = acq_map.size();
std::cout << "bits = " << bits << std::endl;
std::vector<std::vector<bool> > c_flags (1 << bits);
for (i = 0; i < c_flags.size(); ++i)
{
for (j = 0; j < bits; ++j)
{
c_flags[i].push_back((i & (1 << j)) > 0);
}
}
std::cout << "c_flags.size() = " << c_flags.size() << std::endl;
for(i = 0; i < c_flags.size(); ++i)
{
for(j = 0; j < bits; ++j)
{
std::cout << c_flags[i][j] << std::endl;
for(It_acq itc = acq_map.begin(); itc!= acq_map.end(); ++itc)
{
acq_pair it1 = itc->second;
itc->second.second = c_flags[i][j];
std::cout << itc->first << " : " << it1.first << " : " << it1.second << std::endl;
}
}
std::cout << "\n" << std::endl;
}
Comment puis-je accéder à un seul élément du conteneur multimap à la fois? Je ne veux mettre à jour que la jième valeur de la carte, mais lorsque je parcourt la carte, toutes les valeurs booléennes sont modifiées. Existe-t-il un moyen sélectif d'accéder aux valeurs du conteneur de carte?affecter des valeurs à des éléments sélectifs en utilisant STL multimap
Merci cela a fonctionné. J'utilise un multimap parce que les clés représentent les arêtes et les sommets d'un graphique. La valeur bool est une pondération affectée à une combinaison spécifique bord-vertx, après laquelle un autre algorithme est exécuté. Thx – vivekv80
@ vivekv80: Il existe une bibliothèque de graphes boost.BGL (http://www.boost.org/doc/libs/1_43_0/libs/graph/doc/table_of_contents.html), ce qui peut être utile si c'est long -Projet final. – Cubbi