class Map {
private:
std::vector<std::string> key;
std::vector<std::string> storage;
int i;
public:
Map();
Map* set(std::string, std::string);
std::string get(std::string);
};
Map::Map() {}
Map* Map::set(std::string k, std::string v) {
key.push_back(k);
storage.push_back(v);
i++;
return (this);
}
std::string Map::get(std::string k) {
for (int k = 0; k < i; i++)
if (key[i] == k)
return storage[i];
}
这次我还在玩 C++ 和类。我还没有“研究”地图和矢量,只是阅读一些文档。这个课程没有任何目的,只是尝试一下,所以:是的,我知道类似于我在这里想要实现的东西已经存在。
为什么,编译这段代码,我得到:
main.cpp:32: 错误:'((Map*)this)->Map::key 中的'operator==' 不匹配。std::vector<_Tp, _Alloc>::operator[] [with _Tp = std::basic_string, std::allocator >, _Alloc = std::allocator, std::allocator >](((long unsigned int) ((Map*)this)->Map::i)) == k'
我的意思是,向量中真的不存在 == 运算符吗?