Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 初始化映射时出错_C++_Dictionary_Stl - Fatal编程技术网

C++ 初始化映射时出错

C++ 初始化映射时出错,c++,dictionary,stl,C++,Dictionary,Stl,以下代码给出错误“binary”您必须为codepoint/code定义y; } }; int main() { 地图m; 点p1,p2; p1.get(); p2.get(); m、 插入(形成配对(p1、p2)); } 您还可以在第三个模板参数中为std::map指定一个比较器,但我认为定义必须为codepoint/code定义y; } }; int main() { 地图m; 点p1,p2; p1.get(); p2.get(); m、 插入(形成配对(p1、p2)); } 您也可以在

以下代码给出错误“binary”您必须为codepoint/code定义
x>>y;
}
};
int main()
{
地图m;
点p1,p2;
p1.get();
p2.get();
m、 插入(形成配对(p1、p2));
}
您还可以在第三个模板参数中为
std::map
指定一个比较器,但我认为定义
必须为codepoint/code定义
x>>y;
}
};
int main()
{
地图m;
点p1,p2;
p1.get();
p2.get();
m、 插入(形成配对(p1、p2));
}

您也可以在第三个模板参数中为
std::map
指定一个比较器,但我认为定义
为什么在使用m[p1]=m[p2]而不是m.insert(make_pair(p1,p2))?@user6275035时会出现相同的错误?原因完全相同:因为没有定义使用的运算符。为什么在使用m[p1]=m[p2]时会出现相同的错误而不是m.insert(make_pair(p1,p2))?@user6275035的原因完全相同:因为未定义使用的运算符。
#include <iostream>
#include <map>
using namespace std;

struct point
{
    float x;
    float y;
public:
    void get() {
        cin >> x >> y;
    }
};

int main()
{
    map<point, point> m;
    point p1, p2;
    p1.get();
    p2.get();
    m.insert(make_pair(p1,p2));
}
#include <iostream>
#include <map>
using namespace std;

struct point
{
    float x;
    float y;
public:
    // add this function
    bool operator<(const point& p) const {
        // example implementation
        if (x < p.x) return true;
        return x == p.x && y < p.y;
    }
    void get() {
        cin >> x >> y;
    }
};

int main()
{
    map<point, point> m;
    point p1, p2;
    p1.get();
    p2.get();
    m.insert(make_pair(p1,p2));
}