【发布时间】:2016-10-14 06:28:57
【问题描述】:
我想使用set<vector<data>>,其中data 是用户定义的类,set 和vector 都是STL,
class data
{
int info;
};
我不明白我们是否需要为vector<data> 和data 类或仅data 类定义比较器 运算符。
以及我们如何定义 comarator 操作符?
【问题讨论】:
-
你真的想要一组数据向量吗?你为什么要这么做?
-
一个集合需要知道两个元素是否相同,因为它不会存储重复项(因为它们是相同的东西)。所以你必须提供一种方法来判断两个向量是否相同,这不是一个向量通常会做的事情。这尖叫着你没有做正确的事情。
-
这里有一股 XY 问题的味道
-
如果
std::vector的默认顺序不合适,你需要自己定义。你总是需要为你自己的类定义一个排序。 -
如果您可以定义两个向量何时/应该被视为重复,那么只有我认为向量集才有意义。你能想到任何实际的例子吗?
标签: c++ vector data-structures set