C++ 比较顺序无关紧要的两个容器
我将参数作为字符串存储到命令中。我现在希望将多个参数存储在标准库或boost中的容器中。参数的顺序不显著 例如,对于命令列表,以下是等效的: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+
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吗?