gpt4 book ai didi

c++ - 在 C++ 中对命令行参数进行排序

转载 作者:太空狗 更新时间:2023-10-29 20:21:42 25 4
gpt4 key购买 nike

我想对命令行参数数组进行排序。所有参数都是整数。这是我的代码,但它不起作用。

#include <iostream>
using namespace std;

int main (int argc, char *argv[]) {
for (int i=0; i<argc-1; ++i) {
int pos = i;
for (int j=i+1; j<argc; ++j) {
if (argv[j] - '0' < argv[pos] - '0') {
pos = j;
}
}
char *tempt = argv[i];
argv[i] = argv[pos];
argv[pos] = tempt;
}
for (int i=0; i<argc; ++i) {
cout << argv[i] <<endl;
}
}

编译后,当我调用./a.out 4 3 2 1时,它仍然在屏幕上打印4 3 2 1而不是1 2 3 4。怎么了?

提前致谢。

最佳答案

尝试 std::sort来自 <algorithm>使用自定义比较器

std::sort(argv, argv + argc, [](char * const & a, char * const & b) {
return atoi(a) < atoi(b);
});

关于c++ - 在 C++ 中对命令行参数进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41887068/

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