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

门户网站定义wordpress jigoshop

门户网站定义,wordpress jigoshop,天津网页制作设计营销,wordpress增肥主题C STL#xff08;标准模板库#xff09;中的容器是一组通用的、可复用的数据结构#xff0c;用于存储和管理不同类型的数据。 目录 零. 简介#xff1a; 一 . vector#xff08;动态数组#xff09; 二. list#xff08;双向链表#xff09; 三. deque#xff08…C STL标准模板库中的容器是一组通用的、可复用的数据结构用于存储和管理不同类型的数据。 目录 零. 简介 一 . vector动态数组 二. list双向链表 三. deque双端队列 四. set集合 五. map映射 零. 简介 STL 容器提供了一系列预定义的类如 vector动态数组、list双向链表、deque双端队列、set集合、map映射等。 意义和作用 提高编程效率无需自己实现常见的数据结构。代码简洁使用统一的接口和操作方式。灵活性适应不同的需求和数据类型。可扩展性易于添加新的容器或扩展现有容器的功能。性能优化经过精心设计和优化。类型安全在编译时进行类型检查。代码可维护性减少重复代码提高代码的可读性和可维护性。 例如使用 vector 可以方便地管理动态数组而不需要自己手动实现动态内存分配和元素添加、删除等操作。 一 . vector动态数组 vector 是 C STL 中的一种动态数组容器。它具有以下特点和优势 动态调整大小可以根据需要自动调整存储空间。高效的随机访问支持通过索引进行快速访问。易于使用提供了丰富的接口和操作方法。自动内存管理无需手动处理内存分配和释放。 有以下常用的 API push_back()在数组末尾添加元素。pop_back()删除数组末尾的元素。at()通过索引访问元素提供边界检查。[] 操作符通过索引访问元素。size()获取数组中元素的数量。empty()判断数组是否为空。begin()获取数组的起始迭代器。end()获取数组的末尾迭代器。clear()清空数组中的所有元素。insert()在指定位置插入元素。erase()删除指定元素或指定范围的元素。 以下是一个使用 vector 的示例代码 #include vector #include iostreamint main() {std::vectorint numbers;// 向 vector 中添加元素numbers.push_back(1);numbers.push_back(2);numbers.push_back(3);// 输出 vector 中的元素for (int num : numbers) {std::cout num ;}std::cout std::endl;return 0; } 前面的文章有更详细的介绍:http://t.csdnimg.cn/QMcDR 二. list双向链表 list 是 C STL 中的双向链表容器. 它具有以下常用的 API push_back()在链表末尾添加元素。push_front()在链表开头添加元素。insert()在指定位置插入元素。erase()删除指定元素或指定范围的元素。clear()清空链表中的所有元素。size()获取链表中元素的数量。empty()判断链表是否为空。front()获取链表开头的元素。back()获取链表末尾的元素。begin()获取链表的起始迭代器。end()获取链表的末尾迭代器。 以下是一个使用 list 的示例代码 #include list #include iostreamint main() {std::listint numbers;// 在链表末尾添加元素numbers.push_back(1);numbers.push_back(2);numbers.push_back(3);// 在链表开头添加元素numbers.push_front(0);// 输出链表中的元素for (int num : numbers) {std::cout num ;}std::cout std::endl;return 0; } 三. deque双端队列 deque 是一种可以在两端高效地进行插入和删除操作的容器。意义和作用 高效的两端操作可以在队列的两端快速添加和删除元素。动态调整大小自动根据需要调整内存。支持随机访问像数组一样可以通过索引访问元素。通用数据结构适用于多种场景。提高代码效率和可维护性提供了简洁、高效的接口。 例如可以使用 deque 来实现一个队列或栈的功能。 常用 API 包括 push_back()在队列尾部添加元素。push_front()在队列头部添加元素。pop_back()从队列尾部删除元素。pop_front()从队列头部删除元素。insert()在指定位置插入元素。erase()删除指定元素或指定范围的元素。clear()清空队列中的所有元素。size()获取队列中元素的数量。empty()判断队列是否为空。begin()获取队列的起始迭代器。end()获取队列的末尾迭代器。 下面是一个简单的 deque 使用示例代码 #include deque #include iostreamint main() {std::dequeint numbers;numbers.push_back(1); //向最后面插入数据 1numbers.push_front(2);//向最钱面插入数据 2, 1numbers.push_back(3); //向最后面插入数据 2, 1,3numbers.push_front(4);//向最钱面插入数据 4, 2, 1,3std::cout Front: numbers.front() std::endl;std::cout Back: numbers.back() std::endl;return 0; } 四. set集合 set 是一种无序且不允许重复元素的容器。 意义和作用 自动去重无需手动处理重复元素。快速查找提供高效的元素查找操作。无序存储元素的顺序是随机的。键值对操作常用于存储键值。 常用的 API 包括 insert()插入元素。find()查找元素。erase()删除元素。size()获取元素数量。empty()判断是否为空。 下面是一个简单的示例代码 #include set #include iostreamint main() {std::setint numbers { 1, 2, 3, 4, 5 };numbers.insert(3);//插入已有数据 3numbers.insert(6); //插入未有数据//循环打印for (std::setint::iterator i numbers.begin(); i ! numbers.end(); i){std::cout *i std::endl;}// 查找元素if (numbers.find(3) ! numbers.end()) {std::cout Element found std::endl;}else {std::cout Element not found std::endl;}return 0; } 五. map映射 map映射是一种关联容器它将键key和值value进行关联。 是一种无序容器其中键必须是唯一的。 意义和作用 提供了一种键值对的存储方式。快速的键值查找。自动根据键进行排序。 常用 API insert()插入键值对。find()根据键查找对应的值。erase()删除键值对。size()获取映射中键值对的数量。empty()判断映射是否为空。 下面是一个简单的示例代码 #include map #include iostreamint main() {std::mapstd::string, int grades;grades[a] 1;grades[b] 2;grades[c] 3;// 根据键查找值int aliceGrade grades[a];std::cout a: aliceGrade std::endl;return 0; } 扩展: 可以用来做观察者模式; 观察者模式是一种设计模式它定义了对象之间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都会得到通知并自动更新。 在 C 中可以使用观察者模式来实现 map 的变化通知。下面是一个简单的示例代码 #include iostream #include map #include string #include vectorclass Observer { public:virtual void update() 0; };class Subject { private:std::mapstd::string, int data;std::vectorObserver* observers;public:void addObserver(Observer* observer) {observers.push_back(observer);}void removeObserver(Observer* observer) {auto it std::find(observers.begin(), observers.end(), observer);if (it ! observers.end()) {observers.erase(it);}}void updateObservers() {for (Observer* observer : observers) {observer-update();}}void setKeyValue(const std::string key, int value) {data[key] value;updateObservers();}int getValue(const std::string key) {return data[key];} };class DisplayObserver1 : public Observer { public:void update() override {std::cout Data changed1 std::endl;} };class DisplayObserver2 : public Observer { public:void update() override {std::cout Data changed2 std::endl;} };int main() {Subject subject;DisplayObserver1 observer1;subject.addObserver(observer1);DisplayObserver2 observer2;subject.addObserver(observer2);subject.setKeyValue(key1, 10);return 0; }
http://www.w-s-a.com/news/927726/

相关文章:

  • 阿里云上传的网站 服务器路径试用网站开发
  • 做美食原创视频网站网站开发要多钱
  • 怎么做网站作业哪个网站可兼职做logo
  • asp网站搭建教程做网站备案完成之后需要干什么
  • 无锡外贸网站开发兰州网站在哪备案
  • 广州百度网站建设公司天津建设电工证查询网站
  • 网站建设与管理行业发展情况制作网页动态效果
  • wordpress 特色缩略图临沂seo全网营销
  • 隆昌市住房和城乡建设厅网站做网站用什么字体比较好
  • 惠州网站建设设计18款未成年禁用软件ap入口
  • 班级网站 建设目标如何做好网站建设内容的策划书
  • 网站建设与网页设计期末考试清博舆情系统
  • plone网站开发商城网站建设怎么收费
  • 旺旺号查询网站怎么做公司门户网站项目模版
  • 网站免费一站二站四站上海网站怎么备案表
  • 漫画交流网站怎么做开发微信小程序公司
  • 网站建设马鞍山怎么建立局域网网站
  • 开源 网站开发框架哪些网站可以做图片链接
  • 大良制作网站网站设计的能力要求
  • 前端设计除了做网站还能做什么江苏高校品牌专业建设工程网站
  • 做二手房产网站多少钱用户权限配置wordpress
  • 做亚马逊网站需要租办公室吗小型企业网站模板
  • 网站全屏视频怎么做个人公司注册网上申请
  • 如何k掉别人的网站搜索引擎优化与关键词的关系
  • 百度推广 网站吸引力做网站开发的薪酬怎么样
  • js网站开发工具软件营销方案
  • 做网站的天空网云南省建设厅网站怎么进不去
  • 天津网站排名提升网络营销推广策略包括哪些
  • 网站建设与管理 ppt网站打开是别人的
  • 图片网站怎么做排名怎么分析一个网站seo