以下代码实现用vector实现一个map,规避map自动排序功能功能: 通过key值查找 通过[]赋值取值 通过key值删除 成对插入值 #ifndef MAP_H_ #define MAP_H_ #include <vector> #include <utility> using namespace std; template <typename k="" typename="" t=""> class SelfMap { public: T* find(const K& k) { for(unsigned int i = 0; i < m_data.size(); i++) { if(m_data[i].first == k) { return &(m_data[i].second); } } return NULL; } void insert(const K& f, const T& s) { T* p = find(f); if(p == NULL) { m_data.push_back(pair<k t="">(f,s)); } else { *p = s; } } void removed(const K& k) { unsigned int index = 0; for(unsigned int i = 0; i < m_data.size(); i++) { if(m_data[i].first == k) { index = i; break; } } m_data.erase(m_data.begin() + index); } T& operator [](const K& key) { if (this->find(key) != NULL) { return *this->find(key); } else { this->insert(key, T()); } return *this->find(key); } private: vector<std::pair<k t="">> m_data; }; #endif </k></k></typename></utility></vector>