Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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#数组.Sort 如果存在,那么C++的C++等价物是什么? 我看了C#函数的源代码,但我无法计算出来。_C#_C++_Sorting - Fatal编程技术网

C++;等价于C#数组.Sort 如果存在,那么C++的C++等价物是什么? 我看了C#函数的源代码,但我无法计算出来。

C++;等价于C#数组.Sort 如果存在,那么C++的C++等价物是什么? 我看了C#函数的源代码,但我无法计算出来。,c#,c++,sorting,C#,C++,Sorting,您提供的文档链接没有说明算法的复杂性(考虑到该公司提供必要信息的能力,这并不奇怪)。通常,如果没有至少一个额外的O(N)空间,这看起来是不可行的。Konrad在注释中链接的解决方案可能是最便宜的解决方案,但如果数组中的元素很小且很琐碎,则可以对它们进行排序,例如简单地将它们放在地图中: std::多映射项; 对于(std::size_t i{};i。我猜它是一个复制品。这:复杂性是已知的“如果分区大小小于或等于16个元素,则使用插入排序算法。如果分区数超过2*LogN,其中N是输入数组的范围,则

您提供的文档链接没有说明算法的复杂性(考虑到该公司提供必要信息的能力,这并不奇怪)。通常,如果没有至少一个额外的O(N)空间,这看起来是不可行的。Konrad在注释中链接的解决方案可能是最便宜的解决方案,但如果数组中的元素很小且很琐碎,则可以对它们进行排序,例如简单地将它们放在地图中:

std::多映射项;
对于(std::size_t i{};i
(两个一行
std::transform
s可以用来代替第二个循环,一个复制键,另一个复制值。)

或数组而不是映射:

std::向量项(key.size());
std::transform(
std::make_move_迭代器(keys.begin()),
std::make_move_迭代器(keys.end()),
std::make_move_迭代器(values.begin()),
items.begin(),
(auto&&k,auto&&v){return std::pair{std::move(k),std::move(v);});
std::sort(items.begin()、items.end()、[](自动常数&l、自动常数&r){
返回l.first

Zip迭代器在这里可能很有用,但它不在STL中,所以只有库级解决方案。

您提供的文档链接没有说明算法的复杂性(毫不奇怪,考虑到该公司在提供必要信息方面有多好)。一般来说,如果没有额外的O(N),这看起来是不可行的space.Konrad在注释中链接的解决方案可能是最便宜的,但如果数组中的元素很小且很琐碎,您可以对它们进行排序,例如简单地将它们放在地图中:

std::多映射项;
对于(std::size_t i{};i
(两个一行
std::transform
s可以用来代替第二个循环,一个复制键,另一个复制值。)

或数组而不是映射:

std::向量项(key.size());
std::transform(
std::make_move_迭代器(keys.begin()),
std::make_move_迭代器(keys.end()),
std::make_move_迭代器(values.begin()),
items.begin(),
(auto&&k,auto&&v){return std::pair{std::move(k),std::move(v);});
std::sort(items.begin()、items.end()、[](自动常数&l、自动常数&r){
返回l.first

zip迭代器在这里可能有用,但它不是在STL中只有库级解决方案。

它不存在。建议——不要用C++或任何其他语言作为模型来编写C++程序。最后,你会得到一个程序,它有漏洞,内存泄漏,效率低下,或者只是看起来很奇怪的C++程序员。c++ +某种类型的字典,可以通过排序键来迭代。从键排序的字典中提取值将解决你的问题,字典被称为“代码> STD::MAP< /Cord>”。我猜它是一个复制品:它不存在。建议——不要用C++或任何其他语言作为模型来编写C++程序。H是一个程序,它有bug,内存泄漏,效率低下,或者只是对另一个C++程序员来说看起来很奇怪。C++中有没有一种字典可以用排序键来迭代?从键排序的DICT中提取值将解决你的问题:字典被称为“代码> STD::MAP< /代码>。我猜它是一个复制品。这:复杂性是已知的“如果分区大小小于或等于16个元素,则使用插入排序算法。如果分区数超过2*LogN,其中N是输入数组的范围,则使用Heapsort算法。否则,则使用快速排序算法。”这来自文档,在Remarks复杂性部分中是已知的“如果分区大小小于或等于16个元素,则使用插入排序算法。如果分区数超过2*LogN,其中N是输入数组的范围,则使用Heapsort算法。否则,则使用快速排序算法。”这是文档中的备注部分