Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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++_Sorting_Comparison - Fatal编程技术网

C++ C+中二进制数据(长度不相同)的字典排序+;

C++ C+中二进制数据(长度不相同)的字典排序+;,c++,sorting,comparison,C++,Sorting,Comparison,我有两个二进制数据缓冲区,它们代表SSID。SSID不是字符串,可以做一些事情,比如在中间有一个空字符。我想按字典顺序对SSID列表进行排序: \0\0\0\0 AccessPointA AccessPointB AccessPointB\0 ZZZZ 我已经有了一个框架,它只需要一个0结果来进行比较(因此,如果它是一个字符串,它可以使用strcmp) 但是,由于两个SSID的长度不一定相同,我不能直接使用memcpy,我也不想分配一个缓冲区,并用空值或其他东西填充它们 有没有一种有效的方法可

我有两个二进制数据缓冲区,它们代表SSID。SSID不是字符串,可以做一些事情,比如在中间有一个空字符。我想按字典顺序对SSID列表进行排序:

\0\0\0\0
AccessPointA
AccessPointB
AccessPointB\0
ZZZZ
我已经有了一个框架,它只需要一个
0
结果来进行比较(因此,如果它是一个字符串,它可以使用
strcmp

但是,由于两个SSID的长度不一定相同,我不能直接使用
memcpy
,我也不想分配一个缓冲区,并用空值或其他东西填充它们

有没有一种有效的方法可以按字典顺序比较两个任意长度的缓冲区?

std::sort(std::begin(Container), std::end(Container), [](SSID const& Lhs, SSID const& Rhs){ return std::lexicographical_compare(std::begin(Lhs), std::end(Lhs), std::begin(Rhs), std::end(Rhs)); });