C ++:使用unique_ptr作为地图中的键

时间:2018-09-01 07:08:11

标签: c++

我正在使用C ++,并且我想使用智能指针作为map中的键。这是我尝试过的。

#include <iostream>
#include <memory>
#include <string>
#include <map>
#include <cstring>

using namespace std;

struct CharPointerComparator {
    bool operator()(const unique_ptr<char>& a, const unique_ptr<char>& b) const {
        return *a < *b;
    }
};
int main() {
    map<unique_ptr<char>, int, CharPointerComparator> myMap;
    unique_ptr<char> p1 = make_unique<char>('a');
    myMap.insert(make_pair(p1, 10));
}

它不起作用。我遇到错误:

/usr/include/c++/8.2.0/bits/stl_pair.h:524:14: error: no matching function for call to ‘std::pair<std::unique_ptr<char>, int>::pair(std::unique_ptr<char>&, int)’

这是怎么了?如何使insert工作?

0 个答案:

没有答案