Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.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++_Boost_Std_C++98 - Fatal编程技术网

C++ 比较顺序无关紧要的两个容器

C++ 比较顺序无关紧要的两个容器,c++,boost,std,c++98,C++,Boost,Std,C++98,我将参数作为字符串存储到命令中。我现在希望将多个参数存储在标准库或boost中的容器中。参数的顺序不显著 例如,对于命令列表,以下是等效的: LIST all verbose LIST verbose all 然后我希望能够比较两个容器,其中[“all”,“verbose”]和[“verbose”,“all”]的比较给出true 您建议我使用什么容器以及我应该如何进行比较?std::is_排列(seq1_开始,seq1_结束,seq2_开始)将做您想要的事情,而不必担心它们的存储方式。[在C+

我将参数作为字符串存储到命令中。我现在希望将多个参数存储在标准库或boost中的容器中。参数的顺序不显著

例如,对于命令列表,以下是等效的:

LIST all verbose
LIST verbose all
然后我希望能够比较两个容器,其中
[“all”,“verbose”]
[“verbose”,“all”]
的比较给出
true

您建议我使用什么容器以及我应该如何进行比较?

std::is_排列(seq1_开始,seq1_结束,seq2_开始)
将做您想要的事情,而不必担心它们的存储方式。[在C++11或boost中提供]

然而,这可能是一个
O(N^2)
操作


如果您不想在比较期间支付该价格,那么您需要一个订购的容器。然后,您可以(例如)使用
std::equal(seq1\u start,seq1\u end,seq2\u start)
在线性时间(
O(N)
)中进行比较。

任何已排序的容器。@永远是的,这将是一种很好的方法<代码>标准::无序集可能是最快的解决方案。你有C++11吗?