我正在尝试创建一组对象,但是我的错误信息是如何使用 - >用迭代器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);
}
}
如果您需要更多信息,请与我们联系。谢谢。
答案 0 :(得分:0)
我不认为集合中的元素是可变的,因为这会干扰排序。
答案 1 :(得分:-1)
当你想在另一个容器中创建一个stl容器时,尝试这样做,例如使用整数:
set<set<int> >
您必须在最后两个“&gt;”之间添加一个空格,否则编译器会将其读作好像是一个写入操作符,如
cin >> myvariable;