1

我是 C++ 新手,我需要Set从 the中使用,STL但我正在为这个概念而苦苦挣扎。

我有一个这样的数组int my_data[3]

我想创建(不知道这是否可能)一个set具有 3 个整数的空间,并且keyfor thesetint是存储在第一列的那个。

我也想做一个自定义排序。

这是我尝试过但没有成功的方法。

struct sort_set {
    bool operator() (const int& a, const int& b) const {
        int* arr1 = (int*) a;
        int* arr2 = (int*) b;
        int diff = arr2[1] - arr1[1];
        if (diff) {
            return true;
        } else if (diff == 0) {
            int diff2 = arr2[2] - arr1[2];
            if (diff2) {
                return false;
            }

        }
        return arr1[0] < arr2[0];
    }
};

set<int[3],sort_set> data;

有人可以指出我正确的方向吗?

4

1 回答 1

3

您不能将数组作为容器的元素。它们不可分配也不可复制。

如果您有可用的 C++11,请使用std::array<int, 3>,否则请定义自定义类。

于 2014-03-24T13:46:23.780 回答