Tôi đã đoạn mã sau:C++ bản đồ băm riêng giữ gìn trật tự chèn
#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;
}
Tuy nhiên, tôi đang tìm kiếm cái gì đó giữ gìn trật tự để sau này tôi có thể lặp qua các yếu tố theo thứ tự trong đó chúng được chèn vào. Trên máy tính của tôi mã trên không giữ gìn trật tự, và in như sau:
0 1
11 0
21 2
Tôi nghĩ có lẽ tôi có thể sử dụng một boost::multi_index_container
typedef multi_index_container<
int,
indexed_by<
hashed_unique<identity<int> >,
sequenced<>
>
> Map;
ai đó có thể chỉ cho tôi làm thế nào để thực hiện mã ban đầu của tôi sử dụng vùng chứa này (hoặc bất kỳ vùng chứa thích hợp nào khác) để trình vòng lặp theo thứ tự chèn?
Đang duy trì một danh sách riêng biệt để theo dõi thứ tự chèn ra khỏi câu hỏi? – Qberticus