gpt4 book ai didi

c++ - 如何使用 C++ 将数组按字母顺序排序为新数组?

转载 作者:搜寻专家 更新时间:2023-10-31 02:02:11 25 4
gpt4 key购买 nike

我有一个名为 g_Parameters 的数组,我希望在一个名为 g_SortedParameters 的新数组中按字母顺序排序。

我已经提供了数组的代码。我需要按字母顺序对它进行排序以在日志中使用,但 g_Parameters 本身不按字母顺序排序,因为其他代码依赖于索引。

const unsigned long ParamsCount = 6;
const TCHAR * const g_Parameters[ParamsCount] =
{ TEXT("AllowFatal"), TEXT("Variant"), TEXT("EnableLogs"),
TEXT("AllowRescan"), TEXT("Path"), TEXT("Filter"),
};

如能帮助我将此数组排序为新数组,我将不胜感激。如果需要,我很乐意提供更多信息。

最佳答案

一种方法是使用 std::partial_sort_copy()尽管名称如此,但它可用于对整个数组的拷贝进行排序,而无需修改原始数组的顺序。

演示:

#include <algorithm>
#include <array>
#include <iostream>

template<class T, std::size_t N>
void print_array(const std::array<T, N> &ar) {
for (const auto &elem : ar) {
std::cout << elem << ' ';
}
std::cout << '\n';
}

int main() {
std::array<int, 5> orig = { 10, 8, 1, 4, 3 }, sorted;
std::partial_sort_copy(orig.begin(), orig.end(), sorted.begin(), sorted.end());
print_array(orig);
print_array(sorted);
}

编译运行时会打印出来

10 8 1 4 3 
1 3 4 8 10

关于c++ - 如何使用 C++ 将数组按字母顺序排序为新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57788701/

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