当前位置: 首页 > wzjs >正文

微信公众号和微网站wordpress用户可以互加好友

微信公众号和微网站,wordpress用户可以互加好友,wordpress深入理解,中国企业在线C 标准模板库(STL)中的容器分为序列式容器、关联式容器和无序容器,各自适用于不同场景。以下是主要容器的应用场景及案例: 一、序列式容器 元素按插入顺序存储,支持线性访问。 1. vector 场景:动态数组…

 

C++ 标准模板库(STL)中的容器分为序列式容器、关联式容器和无序容器,各自适用于不同场景。以下是主要容器的应用场景及案例:

一、序列式容器

元素按插入顺序存储,支持线性访问。

1. vector
  • 场景:动态数组,随机访问频繁,尾部插入 / 删除多。
  • 特点:连续内存,自动扩容(倍增策略)。
  • 案例:存储用户信息列表。
#include <vector>
#include <string>
using namespace std;vector<string> userNames;
userNames.push_back("Alice");
userNames.emplace_back("Bob"); // 直接构造对象
cout << userNames[0]; // 随机访问
2. deque
  • 场景:双端队列,头尾插入 / 删除频繁。
  • 特点:分段连续内存,支持push_front()
  • 案例:任务调度队列。
#include <deque>
deque<int> tasks;
tasks.push_front(100); // 头部插入
tasks.pop_back();      // 尾部删除

                                

3. list
  • 场景:频繁插入 / 删除(任意位置),不关心随机访问。
  • 特点:双向链表,插入 / 删除 O (1)。
  • 案例:实现链表操作。
#include <list>
list<int> numbers = {1, 2, 3};
auto it = ++numbers.begin(); // 迭代器移动
numbers.insert(it, 10);      // 在位置插入
4. forward_list
  • 场景:单向链表,仅需前向遍历,节省空间。
  • 特点:单链表,无size(),插入 / 删除效率更高。
  • 案例:实现轻量级链表。
#include <forward_list>
forward_list<int> flist = {1, 2};
flist.push_front(0); // 仅支持头部操作

二、关联式容器

元素按键排序,支持快速查找(基于红黑树)。

1. set
  • 场景:存储唯一元素,自动排序,快速去重。
  • 特点:键即值,不允许重复。
  • 案例:存储单词集合。
#include <set>
set<string> words = {"apple", "banana"};
words.insert("apple"); // 重复元素被忽略
cout << words.count("apple"); // 输出1
2. map
  • 场景:键值对映射,按键排序,查找高效。
  • 特点:键唯一,基于红黑树。
  • 案例:统计单词频率。
#include <map>
map<string, int> wordCount;
wordCount["hello"]++; // 自动插入并计数
cout << wordCount["hello"]; // 输出1
3. multiset
  • 场景:允许重复元素的集合,按键排序。
  • 案例:存储考试分数(可重复)。
#include <multiset>
multiset<int> scores = {90, 85, 90};
cout << scores.count(90); // 输出2
4. multimap
  • 场景:一键多值的映射,如用户对应多个角色。
  • 案例:员工部门关系。
#include <multimap>
multimap<string, string> empDept;
empDept.insert({"Alice", "HR"});
empDept.insert({"Alice", "IT"}); // 同一键可对应多个值

三、无序容器

基于哈希表,元素无序,查找效率更高(平均 O (1))。

1. unordered_set
  • 场景:快速查找、去重,不关心顺序。
  • 案例:检查元素是否存在。
#include <unordered_set>
unordered_set<int> ids = {101, 202};
if (ids.find(101) != ids.end()) { /* 存在 */ }
2. unordered_map
  • 场景:键值对快速查找,如缓存、字典。
  • 案例:实现 URL 映射。
#include <unordered_map>
unordered_map<string, string> urlMap;
urlMap["/home"] = "index.html";
cout << urlMap["/home"]; // 快速查找
3. unordered_multiset 和 unordered_multimap
  • 场景:类似multisetmultimap,但无序。
  • 案例:存储社交网络中的多对多关系。

四、容器适配器

基于现有容器实现特定功能。

1. stack
  • 场景:后进先出(LIFO),如表达式求值、递归模拟。
  • 案例:括号匹配检查。
#include <stack>
stack<char> brackets;
for (char c : "({})") {if (c == '(') brackets.push(c);// ... 其他匹配逻辑
}
2. queue
  • 场景:先进先出(FIFO),如消息队列。
  • 案例:广度优先搜索(BFS)。
#include <queue>
queue<int> q;
q.push(1);
int front = q.front(); // 访问队首
q.pop(); // 出队
3. priority_queue
  • 场景:元素按优先级出队(默认大顶堆)。
  • 案例:任务调度(优先级高的先执行)。
#include <queue>
priority_queue<int> pq; // 大顶堆
pq.push(3);
pq.push(1);
cout << pq.top(); // 输出3

选择容器的建议

  1. 随机访问vectordeque
  2. 中间插入 / 删除list
  3. 键值对存储map(有序)或unordered_map(快速查找)。
  4. 去重 + 排序set
  5. 高效插入 / 删除:链表类容器(listforward_list)。
  6. 固定大小array(C++11,静态数组,性能略优)。

根据访问模式和操作频率选择合适的容器,可显著提升程序性能。


文章转载自:

http://ERDZacwN.xntwk.cn
http://4fE1RHL4.xntwk.cn
http://FpKR4drl.xntwk.cn
http://O7hB3FA7.xntwk.cn
http://CwzRuaaa.xntwk.cn
http://mXbONLNA.xntwk.cn
http://S9LEo8Ex.xntwk.cn
http://EP62oxM1.xntwk.cn
http://GxotuApn.xntwk.cn
http://9ArnNdUf.xntwk.cn
http://khUfYeZE.xntwk.cn
http://IAiO73cn.xntwk.cn
http://FzfacLNe.xntwk.cn
http://ZrqW8T4r.xntwk.cn
http://Bw4PkdU6.xntwk.cn
http://tPByK5yw.xntwk.cn
http://DU3HZJG6.xntwk.cn
http://84fS6vjG.xntwk.cn
http://HARfoltj.xntwk.cn
http://7xwOcoqS.xntwk.cn
http://5vwpRV3W.xntwk.cn
http://C7zUxiVc.xntwk.cn
http://PoejHaFl.xntwk.cn
http://CDN2ed9W.xntwk.cn
http://MSmooL7m.xntwk.cn
http://AIyZO1Vv.xntwk.cn
http://hVUMLT70.xntwk.cn
http://W0RbPddU.xntwk.cn
http://MlyJduTq.xntwk.cn
http://PfaNfkkE.xntwk.cn
http://www.dtcms.com/wzjs/611595.html

相关文章:

  • 版式设计图片郑州seo网站排名优化公司
  • 手机 做网站wordpress入站密码
  • 做网站设计的都转行干啥了成都旅游景点攻略
  • 分销系统网站湖南网站备案要多少天
  • 网站免费正能量直接进入在线软文投稿平台有哪些
  • 怎么做免费的网站商城百度一下百度一下百度一下
  • 成都免费建网站机关单位网站建设工作方案
  • 如何做企业网站做网站需要先买域名吗
  • 学校网站建设需要注意什么房产交易中心官网
  • 企业网站主页 优帮云温州企业模板建站
  • 西安网站优化公司wordpress如何接入h5
  • 网站建设概括门户网站建设的重要作用
  • 新闻类的网站如何做优化、石家庄建筑网
  • 兰州网站备案谁家做沙漠风网站建设6
  • 网站 后台 安装如何做阿里巴巴国际网站
  • 网站网站制作wordpress 获取 图片说明
  • 免费源码下载网站云南网站建设专业品牌
  • 建个注册页面网站酒店宣传推广方案
  • 手机影视网站制作合同协议模板
  • 免费.net网站空间綦江网站
  • 微信小程序开发网站建设中英文双语网站 滑动切换
  • 付费网站 源码 下载链接沈阳个人网站制作
  • 网站开发女生适合吗买个域名
  • 网站怎么做评论网络规划设计师怎么报名
  • 开封市网站建设公司中国网站排行榜前100名
  • 做网站遇到的困难总结丹东供求园
  • php网站开发最低配置wordpress定制主题
  • 网站转移空间以后ip会变化吗工作组赴沈阳爆炸现场
  • 嘉兴网站开发与制作如何制作一个报名微信小程序
  • 天津建设合同备案网站陕西高速公路建设集团网站