用C ++创建一组对象

时间:2017-03-01 00:38:33

标签: c++ c++11

我正在尝试创建一组对象,但是我的错误信息是如何使用 - >用迭代器k。我想在使用之前我必须定义一些重载运算符?我似乎无法在网上找到有关我的具体问题的任何资源。

我的错误讯息是

no instance of overloaded function "std::set<_Kty, _Pr, _Alloc>::insert [with _Kty=Triangles, _Pr=std::less<Triangles>, _Alloc=std::allocator<Triangles>]" matches the argument list and object (the object has type qualifiers that prevent a match)
std::set<std::set<Triangles>>::iterator k;
for (k = setofTriangles.begin(); k != setofTriangles.end(); k++) {
    double v1query = k -> begin() -> getV1()[1];
    double v2query = k -> begin() -> getV2()[1];
    double v3query = k -> begin() -> getV3()[1];

    double iterYMax = std::max(v1query, std::max(v2query,v3query));             
    if (iterYMax == triangleYMax) {
        k -> insert(addTriangle);
    }
}

如果您需要更多信息,请与我们联系。谢谢。

2 个答案:

答案 0 :(得分:0)

我不认为集合中的元素是可变的,因为这会干扰排序。

答案 1 :(得分:-1)

当你想在另一个容器中创建一个stl容器时,尝试这样做,例如使用整数:

set<set<int> >

您必须在最后两个“&gt;”之间添加一个空格,否则编译器会将其读作好像是一个写入操作符,如

cin >> myvariable;