gpt4 book ai didi

c++ - 对 vector 的 vector 进行排序

转载 作者:可可西里 更新时间:2023-11-01 16:57:59 28 4
gpt4 key购买 nike

我有

    vector<vector<int>> vec 

在我的 C++ 应用中。

每个作为“大” vector 元素的整数 vector 都有 4 个 INT 值。我想根据它的整数内容 vector 的第三个值对 vec 进行排序(我的意思是每个“内部” vector 第三个元素)——这可能吗?

编辑

假设我有一个函数

COST(vector<int>)

它根据我的 vector 值计算出一些值——我也可以在比较参数中使用它吗?它会帮助我更多。

最佳答案

当然可以。 std::sort可以采用第三个参数,这是排序时要使用的比较函数。例如,您可以使用 lambda 函数:

std::vector<std::vector<int>> vec;
// Fill it

std::sort(vec.begin(), vec.end(),
[](const std::vector<int>& a, const std::vector<int>& b) {
return a[2] < b[2];
});

或者,您可以传递任何其他可调用的签名 bool(const std::vector<int>&, const std::vector<int>&) ,例如仿函数或函数指针。


对编辑的回应:只需应用您的 COST功能ab :

std::sort(vec.begin(), vec.end(),
[](const std::vector<int>& a, const std::vector<int>& b) {
return COST(a) < COST(b);
});

关于c++ - 对 vector 的 vector 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419520/

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