gpt4 book ai didi

c++ - Cplusplus std::set 二维数组

转载 作者:行者123 更新时间:2023-11-30 02:47:38 28 4
gpt4 key购买 nike

我是 C++ 的新手,我需要使用 STL 中的 Set,但我在这个概念上苦苦挣扎。

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

我想创建(不知道这是否可能)一个 set,其中包含 3 个整数的空间,key 用于 set 将是存储在第一列的 int

我还想进行自定义排序。

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

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;

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

最佳答案

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

使用 std::array<int, 3>如果您有 C++11 可用,或者定义一个自定义类。

关于c++ - Cplusplus std::set 二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611188/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com