aka*_*nuk 3 c++ string stl vector
例如.我有一些结构:
s_Some{
std::string lable;
s_some_junk some_junk;
};
Run Code Online (Sandbox Code Playgroud)
一个矢量:
std::vector<s_Some> mSome;
Run Code Online (Sandbox Code Playgroud)
然后我用很多s_Somes填充这个向量.
我需要为这个向量中的单个s_Some找到一个迭代器,它有一个特定的标签.到目前为止,我只是遍历所有这些垃圾,并将每个标签与想要的那个匹配.这看起来有点愚蠢.有没有更好的方法呢?
Ano*_*ous 10
选项1)如果你被迫使用std :: vector,但是一旦向量被填充它保持不变,那么你可以对向量进行排序并使用二进制搜索.唯一的成本是排序然后没有额外的开销.搜索时间是对数O(logN).
选项2)如果你有自由并可以选择不同的数据结构,那么考虑使用map(也是对数)或unordered_map(期望的O(1),最差的O(n)).
我刚刚注意到你说你想要将每个标签与正在寻找的标签相匹配.所以我得出结论,你可以有重复的标签.然后对于第2点使用相应的multi_map容器,而对于第1点,事情变得有点混乱.
| 归档时间: |
|
| 查看次数: |
13340 次 |
| 最近记录: |