Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C+中的内置排序+; 如何在C++中使用向量或内置排序函数,用C语言中的大部分语言?我正在尝试为一个C程序对数组进行排序。可以用一个简单的代码和排序实现来解释它吗?我对C++非常陌生。< P>有一个代码示例: std::array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; // sort using the default operator< std::sort(s.begin(), s.end()); for (int a : s) { std::cout << a << " "; } std::cout << '\n';_C++_C - Fatal编程技术网

C+中的内置排序+; 如何在C++中使用向量或内置排序函数,用C语言中的大部分语言?我正在尝试为一个C程序对数组进行排序。可以用一个简单的代码和排序实现来解释它吗?我对C++非常陌生。< P>有一个代码示例: std::array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; // sort using the default operator< std::sort(s.begin(), s.end()); for (int a : s) { std::cout << a << " "; } std::cout << '\n';

C+中的内置排序+; 如何在C++中使用向量或内置排序函数,用C语言中的大部分语言?我正在尝试为一个C程序对数组进行排序。可以用一个简单的代码和排序实现来解释它吗?我对C++非常陌生。< P>有一个代码示例: std::array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; // sort using the default operator< std::sort(s.begin(), s.end()); for (int a : s) { std::cout << a << " "; } std::cout << '\n';,c++,c,C++,C,如果要在C中排序,则应使用 如果要在C++中排序,则应使用以下是一个用于排序字符串的qsort示例,该示例对传递的参数进行排序和打印: #include <string.h> static inline int cmp(const void *a, const void *b){ return strcmp(*(const char **)a, *(const char **)b); } int main(int argc, char *argv[]){ qsort

如果要在
C
中排序,则应使用


如果要在
C++
中排序,则应使用以下是一个用于排序字符串的qsort示例,该示例对传递的参数进行排序和打印:

#include <string.h>

static inline int cmp(const void *a, const void *b){
   return strcmp(*(const char **)a, *(const char **)b);
}

int main(int argc, char *argv[]){
    qsort(++argv, --argc, sizeof(char *), cmp);
    while (argc){
      write(1,argv[0],strlen(argv[0]));
      write(1,(--argc && argv++)?"\t":"\n",1);
   }
}
#包括
静态内联整数cmp(常量无效*a,常量无效*b){
返回strcmp(*(常量字符**)a、*(常量字符**)b);
}
int main(int argc,char*argv[]){
qsort(++argv,--argc,sizeof(char*),cmp);
while(argc){
写入(1,argv[0],strlen(argv[0]);
写入(1,(-argc&&argv++)?“\t”:“\n”,1);
}
}

对于其他类型,只需在cmp()函数中将strcmp替换为a-b,并交换顺序以更改升序与降序。

此方法使用内置排序算法,并根据输入数组更改其时间复杂度

 1. #include <bits/stdc++.h>
        using namespace std;

        int main()
        {
            int arr[] = {1, 5, 8, 9, 6, 7, 3, 4, 2, 0};
            int n = sizeof(arr)/sizeof(arr[0]);
           sort(arr, arr+n); //sort(arr, arr+n, greater<int>()); for descending

            cout << "\nArray after sorting

 using "
             "default sort is : \n";
        for (int i = 0; i < n; ++i)
            cout << arr[i] << " ";

        return 0;
    }
1#包括
使用名称空间std;
int main()
{
int arr[]={1,5,8,9,6,7,3,4,2,0};
int n=sizeof(arr)/sizeof(arr[0]);
排序(arr,arr+n);//排序(arr,arr+n,greater());用于降序

CuthC或C++?我猜第一步是要认识到它们是两种不同的语言…如果你得到C样式数组,你可以将它转换成<代码> STD::列表,然后使用<代码> STD:::Stord:< /Cord>,然后将它转换回来(如果需要的话)。这里描述了转换:@DanielSaska AFAIK
std::sort
在C样式数组中工作,无需任何进一步的工作。即使您必须将其复制到标准库容器中,使用向量至少也同样简单,运行速度更快,占用的内存更少。@delnan+1众所周知,
std::sort
完全可以在g在普通的C数组上,而反向(
qsort
sorting STL容器)这是真的。我之所以把这两个都放在一起,是因为OP对他有哪种编译器并不十分清楚。我猜他有一个C++编译器,但他也说“代码>只是为C程序排序一个数组。< /代码> @凯撒,如果是C程序,就不会有任何C++标准容器,所以这不是一个简单的例子。你的答案的措辞是正确的,选择取决于语言/编译器,而不是你是否有C或C++数据结构。没有OP的输入,这只是猜测,但是OP可能在C代码库中工作,在C++中实现了新的部分。接口仍然是C连接和数据结构,但是实现。单个组件的使用可以在内部使用STL和其他C++设备。这种设置在使用C++与大型的C框架(如GTK或CPython)时是很常见的。
与c++11一起使用。@Mithrandir您能解释一下原因吗?您可以在许多调色板中阅读它,基本的是:非成员开始和结束与所有stl容器和数组一起工作,并且可以被任何其他无法更改的容器覆盖,因此可以进行更好的泛型编程。不鼓励只使用代码的答案。
 1. #include <bits/stdc++.h>
        using namespace std;

        int main()
        {
            int arr[] = {1, 5, 8, 9, 6, 7, 3, 4, 2, 0};
            int n = sizeof(arr)/sizeof(arr[0]);
           sort(arr, arr+n); //sort(arr, arr+n, greater<int>()); for descending

            cout << "\nArray after sorting

 using "
             "default sort is : \n";
        for (int i = 0; i < n; ++i)
            cout << arr[i] << " ";

        return 0;
    }