stdset

    3热度

    4回答

    我有std::set其中包含来自int的值。现在我使用迭代器来确定set是否为value。用g当++编译 敌不过 std::set<int> fdsockets; void myfunc(int fd) { if(fdsockets[fd] != fdsockets.end()) { // my code } } 但我有错误: 但我的应用程序

    3热度

    3回答

    在C++中,std :: set :: insert()只在没有一个值为'value'的情况下插入一个值。同样,这是否意味着运算符==或者是否意味着运算符<对于任一次排序都是错误的,还是意味着其他什么?

    3热度

    4回答

    在C++中,我有一个按名称排序的类,它是std::string。我希望在std::map或std::set中每个唯一名称只有一个。 我可以使用std::set,因为operator<将通过名称排序我的实例,但是,我需要通过名称来查找实例。然而,使用键是名字的映射是直接的,但是,我也可以使用一个集合并构造一个我的类的虚拟实例,其名称是我希望查找的集合中定位给定类的实际实例名称。 我想我应该随地图一起

    0热度

    1回答

    我发现了一堆线程关于“从这里实例化”的问题。他们似乎都是创建人忘记默认构造函数的人。我认为我的问题是不同的(但我是C++的新手,对于同样的问题它可能稍有差异,我只是不知道如何实现该解决方案)。 我想插入一个集合,显然它正在从那里实例化。它正在抛出一个错误。 class Node{ public: bool operator <(const Node& other){ return i

    0热度

    2回答

    我宣布STD:下图: std::map<std::string, std::set<unsigned char*>> FilesMap; int InsertData(unsigned char* name) { // here i try to insert pair with name above and clear std::set FilesMap.insert(

    6热度

    5回答

    我有一堆数据充满重复项,我想消除重复项。你知道,例如[1,1,3,5,5,5,7]变成[1,3,5,7]。 它看起来像我可以使用std :: map或std :: set来处理这个。然而,我不确定(a)是简单地将所有值插入到容器中,还是(b)检查它们是否已经存在于容器中,并且只在插入时才插入 - 插入是否非常有效?即使有更好的方法......你能建议一个快速的方法来做到这一点吗? 另一个问题 -

    1热度

    1回答

    这是我的previous question的后续,其中我想知道在std :: set中存储非重复任意数据的最有效方法。 答案有用地指出,对于自定义类,您需要实现运算符<(如果我理解正确的话)。 但是我的特定数据类型是一个向量(在数学意义上)。我想要做的就是在该集合中存储一个新的矢量,只要它不存在。为此,我如何在两个向量之间实现小于运算符?当有3个正交维度进行比较时,似乎没有意义。我可以用什么策略来

    -1热度

    1回答

    发现错误我: “object.h” namespace objectNS { class object { public: int m_number; bool operator== (const object& object) const; bool operator< (const object& object) const;

    1热度

    1回答

    在C++中,按排序顺序存储元素的std::set可以在O(log n)时间插入元素。但是我所知道的所有方法都需要线性时间: 在数组末尾插入元素并将其与前一个元素交换,直到前一个元素小于它为止 - 需要线性时间。 对数组使用二进制搜索并找到要插入元素位置的位置:在O(log n)时间内,但将元素插入给定位置最糟糕的情况下需要O(n)个时间。 如果我们使用排序后的数组作为堆,我们可以在O(log n)

    4热度

    1回答

    我试图用GCC 4.7.2比较两套C++ 11 weak_ptr。下面的代码显示可能的最小样本再现错误: std::set<std::weak_ptr<int>, std::owner_less<std::weak_ptr<int> > > set1; std::set<std::weak_ptr<int>, std::owner_less<std::weak_ptr<int> > > set2