c++ map、vector、list
总体来说,使用map最简单。支持查找,获取下标不存在也不会出错
map是使用rbtree结构, vector是用连续获取内存的方法,类似hash结构、list是链表结构, 不支持下标。
map:
支持元素查找,提供find()查找。 可以直接进行遍历。可以像数组下标那样直接访问赋值。
遍历方式:
for( paramIter=m_mapParamInfo.begin(); paramIter!=m_mapParamInfo.end(); paramIter++){}
vector:
不支持元素查找,没有提供类似find()函数。 连续访问快,在中间插入速度慢。
vector如果要直接下标赋值,只能先通过resize()或元素定义好才能使用,否则越界出现segment fault
list
不支持下标查找,只能遍历。 遍历慢,插入快
遍历方式:
list<string>::iterator groupIter; //定义迭代器
groupIter = m_lGroupInfo.begin();
while(groupIter!=m_lGroupInfo.end())
{
sGroupName = prevGroup+"."+(*groupIter);
groupIter++;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?