c – 在向量中找到特定字符串的最好方法是什么?
发布时间:2020-12-16 10:44:47 所属栏目:百科 来源:网络整理
导读:例如.我有一些结构: s_Some{ std::string lable; s_some_junk some_junk;}; 一个矢量: std::vectors_Some mSome; 然后我用很多s_Somes填充这个向量. 我需要为这个向量中的单个s_Some找到一个迭代器,它有一个特定的标签.到目前为止,我只是遍历所有这些垃圾,
例如.我有一些结构:
s_Some{ std::string lable; s_some_junk some_junk; }; 一个矢量: std::vector<s_Some> mSome; 然后我用很多s_Somes填充这个向量. 我需要为这个向量中的单个s_Some找到一个迭代器,它有一个特定的标签.到目前为止,我只是遍历所有这些垃圾,并将每个标签与想要的那个匹配.这对我来说有点愚蠢.有没有更好的方法呢? 解决方法
选项1)
如果你被迫使用std :: vector,但是一旦向量被填充它保持不变,那么你可以对向量进行排序并使用二进制搜索.唯一的成本是排序然后没有额外的开销.搜索时间是对数O(logN). 选项2) 我刚刚注意到你说你想要将每个标签与正在寻找的标签相匹配.所以我得出结论,你可以有重复的标签.然后对于第2点使用相应的multi_map容器,而对于第1点,事情变得有点混乱. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |