400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

【STL】容器分类及用法(图文+代码详解)-创新互联

STL容器基于基础容器类型拓展的适配器类

1.stack,栈:后进先出,有push(),pop(),top()操作
2.queue,队列:先进先出,有push(),pop(),front(),back()操作
3.priority queue,优先队列:最高级别的元素先进先出,有push(),pop(),top()操作

容器总结:顺序存储(vector,deque),链表存储(list,associate,unordered)

试分析下列代码

vectorvec={1,2,3,4};
int *p=&vec[2];//*p=3
vec.insert(vec.begin(),0);//此时vec:{0,1,2,3,4}
cout<<*p<

此时会输出什么?
第一次运行结果
在这里插入图片描述
第二次运行:
在这里插入图片描述
可以看出输出的值似乎是随机的,因为STL的内存管理机制会因为vector内存不足开辟新内存并将vec中的值复制到新内存中,导致p指针指向不确定
如果运气好,*p会输出2,如果发生了内存复制,*p的值会是一个随机值(如上所示的两次运行),甚至有可能导致程序崩溃
这种行为是不可预测的,这也是顺序存储结构的缺点,而链表存储就不会有这种问题

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前题目:【STL】容器分类及用法(图文+代码详解)-创新互联
转载注明:http://mzwzsj.com/article/ddphih.html
  • 网站建设专属方案

  • 网站定制化设计

  • 7X24小时服务

  • N对管家服务

让你的专属顾问为你服务