我将参数作为字符串存储到命令中。我现在希望将多个参数存储在标准库或boost中的容器中。参数的顺序并不重要。
例如,对于命令LIST,以下内容是等效的:
LIST all verbose
LIST verbose all
然后,我希望能够比较两个容器,其中["all", "verbose"]
和["verbose", "all"]
的比较为true
。
您建议我使用哪个容器,我该如何进行比较?
答案 0 :(得分:0)
std::is_permutation(seq1_start, seq1_end, seq2_start)
会做你想做的事情,而不用担心它们是如何存储的。 [适用于C ++ 11或提升]
但是,这可能是O(N^2)
操作。
如果您不想在比较期间支付该价格,那么您将需要一个订购的容器。然后你可以(例如)使用std::equal(seq1_start, seq1_end, seq2_start)
来比较线性时间(O(N)
)。