क्या इटरेटर की मदद से क्यूमैप के माध्यम से अनुक्रमिक रूप से चलना संभव है, और ऐसे कार्यवाही कर रहे हैं: कुछ वस्तुओं को हटाकर और नए जोड़ना?क्या यह इटरेटर्स के साथ क्यूएपी के माध्यम से चलना और वस्तुओं को मिटाना/जोड़ना सही है?
उदाहरण के लिए:
for(QMap<key_t,val_t>::iterator it = map.begin();
it != map.end();
++it)
{
if(it->value == something)
{
map.erase(it);
map.insert(it->key+10,it->value);
}
}
ऐसा लगता है, कि कुछ भी नहीं गलत किया जाएगा, मुझे यकीन है कि होने के लिए पूछ रहा हूँ। (मेरे पास इसे जांचने के लिए पर्याप्त समय नहीं है)।
युपीडीQMap::unite()
साथ हल होगा:
for(QMap<key_t,val_t>::iterator it = map.begin();
it != map.end();
++it)
{
if(it->value == something)
{
tmp_map.insert(it->key+10,it->value);
map.erase(it);
}
}
map.unite(tmp_map);
जवाब के लिए धन्यवाद!
उपयोगी उत्तर के लिए धन्यवाद! मैं अंतिम वाक्य में आपकी सलाह का उपयोग नहीं कर सकता क्योंकि मुझे अपने मूल्य की तलाश में क्यूमैप की वस्तु के साथ छेड़छाड़ करनी चाहिए। मिटाने और मूल्य डालने के बाद नहीं बदलता है, इसलिए मैं असीमित वस्तुओं के साथ काम कर सकता हूं। मैंने एक अस्थायी संग्रह का उपयोग करने और QMap :: unite() के साथ समस्या को हल करने के लिए आपकी सलाह को ध्यान में रखा है। बहुत धन्यवाद! – ASten