मैं निम्नलिखित कोड है के आदेश को बरकरार रखता है: इसी क्रम ताकि बाद में मैं एक ही क्रम में तत्वों से अधिक पुनरावृति कर सकते हैं बरकरार रखता हैएक सी ++ हैश मैप कि प्रविष्टि
#include <iostream>
#include "boost/unordered_map.hpp"
using namespace std;
using namespace boost;
int main()
{
typedef unordered_map<int, int> Map;
typedef Map::const_iterator It;
Map m;
m[11] = 0;
m[0] = 1;
m[21] = 2;
for (It it (m.begin()); it!=m.end(); ++it)
cout << it->first << " " << it->second << endl;
return 0;
}
हालांकि, मैं कुछ देख रहा हूँ जिसमें वे डाले गए थे। अपने कंप्यूटर पर उपरोक्त कोड क्रम बनाए रखने के नहीं है, और प्रिंट निम्नलिखित:
0 1
11 0
21 2
मैं शायद सोचा था कि मैं एक boost::multi_index_container
typedef multi_index_container<
int,
indexed_by<
hashed_unique<identity<int> >,
sequenced<>
>
> Map;
किसी ने मुझसे बताएंगे कि कैसे कर सकते हैं का उपयोग कर अपने मूल कोड लागू करने के लिए इस्तेमाल कर सकते हैं यह कंटेनर (या कोई अन्य उचित कंटेनर) ताकि इटरेटर सम्मिलन के क्रम का पालन करता हो?
प्रश्न से बाहर सम्मिलन आदेश को ट्रैक करने के लिए एक अलग सूची बनाए रख रहा है? – Qberticus