一个简单的线性映射:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include<vector> #include<iostream> using namespace std; template<class Key,class Value> class LinearMap { public: LinearMap(int size = 101) :arr(size) { current_size = 0; } void Put(const Key&k, const Value&v) { arr[current_size] = DataEntry(k, v); ++current_size; } Value Get(const Key&k) { for (int i = 0; i < current_size; ++i) { if (arr[i].key == k) return arr[i].value; } return Value(); } private: struct DataEntry{ Key key; Value value; DataEntry(const Key&k = Key(), const Value&v = Value()) :key(k), value(v){}; }; vector<DataEntry> arr; int current_size; }; int main() { LinearMap<string, int> lm; lm.Put("tom", 99); lm.Put("Jack", 88); lm.Put("ly", 77); cout << lm.Get("Jack") << endl; return 0; }