【发布时间】:2010-07-23 14:17:16
【问题描述】:
假设您需要实现一个T 项目的容器,它的值可以通过数字索引(这是随机访问)和名称(作为字符串)检索。
在检索、添加和删除项目等常用操作性能方面哪个更好:
(此时按索引检索需要通过走图来实现)
std::map<std::string,T> container;
或 (通过索引快速随机访问,但需要通过名称进行检索)
std::vector<std::pair<std::string,T>> container;
或通过提供两个单独的容器 (快速检索,但添加/删除操作较慢)
std::vector<T> byIndexContainer;
std::map<std::string,T> byNameContainer;
或者你可以推荐其他更好的数据结构?
【问题讨论】:
标签: c++ optimization data-structures stl containers