<分区>
我正在尝试创建一个 map ,其中包含具有不同参数的对象。
但是我发现插入pair后,对象会被销毁。
如果我尝试使用这个对象中的函数。例如:
#include <map>
#include <iostream>
class Test{
public:
Test(double value) : value_(value){}
~Test(){std::cout<< "destroyed";}
void plusone() {value_ += 1;}
private:
double value_;
};
int main(){
std::map<long, Test> map;
map.insert(std::make_pair(1, Test(1.2)));
map[1].plusone();
return 0;
}
它将显示: [错误] 没有用于调用“Class::Class()”的匹配函数
[注意] candidate expects 1 argument, 0 provided
我该怎么做?