#include <iostream>
#include <ostream>
#include <vector>
using namespace std;
template <class T>
class Map {
public:
vector <pair <T, T>> x;
void emptyMap();
insertPair(T, T);
findKey();
eraseKey();
void display();
};
template <class T>
Map<T>::insertPair (T key, T val){ // val = value
x.push_back(make_pair(key, val));
}
template <class T>
void Map<T>::emptyMap () {
x.clear();
}
template <class T>
void Map<T>::display () {
for (const auto &i : x){
cout << i; //error here
}
}
int main () {
Map <int> dx;
dx.insertPair (1,2);
dx.display();
}
尝试重新创建Map容器,用于研究目的。我不断收到这些错误:error文本中的错误:在'int Map::display()[T = int]的示例化中,此处需要(第41行)
错误:没有匹配的'operator〈〈'(操作数类型是'std::ostream {aka std::basic_ostream}'和'const std::pair')(第34行)
1条答案
按热度按时间nkkqxpd91#
默认情况下,ostreaming a
std::pair
没有重载。不过,编写自己的代码相当简单: