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

在哪个网站上做推广作用好制作网站的心得

在哪个网站上做推广作用好,制作网站的心得,wordpress婚庆模板下载,做网站自己买服务器文章目录 C 中的容器分类1. 顺序容器2. 关联容器3. 无序容器4. 容器适配器5. 字符串容器6. 特殊容器 set1.构造函数2.迭代器3.容量相关的成员函数4.修改器类的成员函数5.容器相关操作的成员函数 multiset1.equal_range map1.初始化相关的函数2.迭代器3.容量相关的成员函数4.访问… 文章目录 C 中的容器分类1. 顺序容器2. 关联容器3. 无序容器4. 容器适配器5. 字符串容器6. 特殊容器 set1.构造函数2.迭代器3.容量相关的成员函数4.修改器类的成员函数5.容器相关操作的成员函数 multiset1.equal_range map1.初始化相关的函数2.迭代器3.容量相关的成员函数4.访问相关的成员函数5.修改器类的成员函数6.容器相关操作的成员函数 总结 C 中的容器分类 在C中标准库提供了多种容器这些容器可以根据其数据存储方式和功能进行分类。以下是C中常见容器的分类 1. 顺序容器 这些容器按顺序存储元素适用于需要保持元素顺序的场景。 vector: 动态数组支持快速随机访问和在末尾高效插入和删除操作。deque: 双端队列支持快速随机访问和在两端高效插入和删除操作。list: 双向链表支持在任何位置高效插入和删除操作但随机访问较慢。forward_list: 单向链表只支持在头部高效插入和删除操作。array: 固定大小的数组大小在编译时确定。 2. 关联容器 这些容器根据键值对存储元素并自动按键排序适用于需要快速查找的场景。 set: 集合存储唯一的元素元素自动按键排序。multiset: 允许重复元素的集合元素自动按键排序。map: 键值对存储的映射键唯一且自动排序。multimap: 允许重复键的映射键自动排序。 3. 无序容器 这些容器使用哈希表存储元素适用于需要快速查找和插入的场景但不保证元素顺序。 unordered_set: 无序集合存储唯一的元素。unordered_multiset: 无序多重集合允许重复元素。unordered_map: 无序映射键唯一。unordered_multimap: 无序多重映射允许重复键。 4. 容器适配器 这些不是独立的容器而是对现有容器的包装提供特定用途的接口。 stack: 栈后进先出LIFO结构通常使用deque或vector实现。queue: 队列先进先出FIFO结构通常使用deque或list实现。priority_queue: 优先队列元素按优先级排序通常使用vector和heap算法实现。 5. 字符串容器 string: 用于存储和操作字符序列类似于动态数组但专门针对字符。 6. 特殊容器 bitset: 固定大小的二进制数组提供按位操作。 这些容器各有优缺点和适用场景选择合适的容器可以显著提高程序的性能和可维护性。 这篇文章讲的两个容器都是关联式容器 set 在C标准库中set容器的底层实现通常是基于红黑树这种自平衡二叉搜索树。红黑树是一种能够在插入、删除和查找操作中保持对数时间复杂度的树结构。 1.构造函数 构造函数主要分为三个无参构造迭代器区间构造拷贝构造 无参构造 setint s;迭代器区间构造 vectorint v{ 1,2,3,4,5,6,7 }; setint s(v.begin(), v.end());拷贝构造 setint s1{ 1,2,3,4 }; setint s2(s1);赋值拷贝 setint s1{ 1,2,3,4 }; setint s2; s2 s1;2.迭代器 迭代器遍历 auto it s1.begin(); while (it ! s1.end()) {cout *it ;it; }范围for for (auto e : s1) {cout e ; }3.容量相关的成员函数 int main() {setint s1{ 1,2,3,4 };cout s1.size() endl;//4cout s1.empty() endl;//0return 0; }4.修改器类的成员函数 insert 有三个重载函数 支持迭代器区间插入。 int main() {setint s1;s1.insert(2);s1.insert(3);s1.insert(6);s1.insert(1);s1.insert(5);s1.insert(7);for (auto e : s1){cout e ;}return 0; }erase 第二个重载函数 int num s1.erase(3); cout endl num endl;删除成功返回1删除失败返回0。 5.容器相关操作的成员函数 find int main() {setint s1;s1.insert(2);s1.insert(3);s1.insert(6);s1.insert(1);s1.insert(5);s1.insert(7);auto it s1.find(2);if (it ! s1.end()) cout *it endl;else cout does not exist endl;return 0; }如果找到了返回找到的迭代器如果没有找到则返回的是end()。 count count返回的是对应元素的个数在set中存在就返回1不存在就返回0。 lower_bound lower_bound返回的是大于等于某个数的。 int main() {setint s1;s1.insert(2);s1.insert(3);s1.insert(6);s1.insert(1);s1.insert(5);s1.insert(7);auto lower s1.lower_bound(4);cout *lower endl;return 0; }这里输出的是大于等于4的数所以这里输出的是5。 upper_bound auto upper s1.upper_bound(6); cout *upper endl;这里输出的是大于6的数所以输出的是7。 set有一个致命的缺陷在插入重复数据时是插入不进去的所以这里我们需要了解multiset。 multiset multiset和set唯一不同的区别是一个支持插入重复数据一个不支持。 int main() {setint s1;s1.insert(1);s1.insert(1);s1.insert(1);s1.insert(1);for (auto e : s1) cout e ;multisetint s2;s2.insert(1);s2.insert(1);s2.insert(1);s2.insert(1);cout endl;for (auto e : s2)cout e ;return 0; }可以set不支持插入重复数据multiset支持插入重复数据。 在查找数据的时候multiset查找的是第一个数据。 删除数据multiset删除数据删除的是所有重复的数据而不是删除第一个数据。 1.equal_range int main() {multisetint s{ 1,1,4,4,4,3,3,3,3,3,5,5,5, 6 };auto [a, b] s.equal_range(3);s.erase(a, b);for (auto e : s){cout e ;} }equal_range可以求出指定值的范围区域两个迭代器。 一个首一个尾。 map map属于KV模型用一个k值索引v值。 在C标准库中map 容器的底层实现通常是基于红黑树Red-Black Tree这种自平衡二叉搜索树Self-balancing Binary Search Tree。红黑树是一种能够在插入、删除和查找操作中保持对数时间复杂度的树结构。 1.初始化相关的函数 构造函数 map和set的构造方式是一样的也是三种构造函数。 2.迭代器 map的迭代器和set的迭代器稍有区别但不多。 返回for int main() {mapint, char m{ { 1,a } ,{ 2,b },{ 3,c },{ 4,d },{ 5,e } };for (auto e : m)cout e.first : e.second endl; }迭代器区间遍历 int main() {mapint, char m{ { 1,a } ,{ 2,b },{ 3,c },{ 4,d },{ 5,e } };auto it m.begin();while (it ! m.end()){cout it-first : it-second endl;it;} }结构化绑定 int main() {mapint, char m{ { 1,a } ,{ 2,b },{ 3,c },{ 4,d },{ 5,e } };for (auto [a, b] : m)cout a : b endl; }3.容量相关的成员函数 和set的用法大差不差。 4.访问相关的成员函数 operator[] int main() {mapint, char m{ { 1,a } ,{ 2,b },{ 3,c },{ 4,d },{ 5,e } };cout m[1] endl;cout m[2] endl;cout m[3] endl; }map可以通过一个成员的第一个键值来索引当前成员的第二个键值就是用key索引value。 at int main() {mapint, char m{ { 1,a } ,{ 2,b },{ 3,c },{ 4,d },{ 5,e } };cout m.at(1) endl; }用at进行索引value。 可以看见如果容器当中没有当前值的索引则会抛出异常。 5.修改器类的成员函数 这里修改器类的成员函数和set相同但是insert需要插入一个键值对 m.insert({ 6,f }); m.insert(pairint, char(6, f)); m.insert(make_pair(6, f));6.容器相关操作的成员函数 这些和set都是一样的。 总结 在本篇博客中我们深入探讨了C标准库中的map和set容器。通过详细的示例和解释我们了解了它们的基本用法、常用操作以及在不同场景下的应用。map和set不仅为我们提供了高效的键值对存储和有序集合管理功能还在复杂数据结构和算法设计中扮演了重要角色。 掌握map和set的使用不仅能够提升我们的编程效率还能帮助我们编写出更为高效和可靠的代码。在实际开发中合理地选择和使用这些容器可以显著优化程序的性能和可维护性。 希望通过这篇博客大家能够对map和set有更深入的理解并在以后的编程实践中灵活运用它们。如果你有任何疑问或建议欢迎在评论区留言讨论。
http://www.dnsts.com.cn/news/263786.html

相关文章:

  • 简述网站建设的基本流程专业型企业网站有哪些
  • 企业网站建设 西宁上海公共招聘官网
  • 做一个网站最低多少钱智慧树网页设计与制作答案
  • 用jq和ajax做能登陆注册的一个网站网站美工用什么软件
  • 深鑫辉网站建设整体vi设计
  • 网站有哪些后台旅游微信网站建设
  • 在网站中添加百度地图wordpress抖音
  • 牡丹江建设信息网站做私人网站 违法
  • 携程网站官网公司网站实名认证
  • 有人做网站推广吗宁波高端网站设计价格
  • 建站全过程四会市网站建设
  • 平昌县住房和城乡建设局网站华夏网站建设
  • 龙岗区网站建设公司在线crm软件
  • 网站优化时间做面食专业网站
  • 有什么做设计的兼职网站网站备案回访电话号码
  • 游戏网站网页设计wordpress设置网址
  • 营销型网站模版首页2免费空间
  • 馆陶做网站wordpress要收钱吗
  • 网络技术网站是做什么的wordpress 4.7.6
  • 做美工的网站wordpress主题 门户
  • 哪家公司做网站好厦门做网站哪家强
  • 闲鱼钓鱼网站怎么做软件开发3000人天报价标准
  • 可以做编程题的网站发稿服务
  • 网站开发语言php网站制作多少钱?
  • 深圳网站设计服务商建立一个网站怎么做
  • 汽车网站建设规划书黑龙江省住房与城乡建设厅网站
  • 外汇网站模版智慧团建团员登录网站
  • 贵阳网站上门备案业务旅游网站排行榜前20
  • 营销型网站架构网站建设与管理是什么工作
  • 怎样建设自已的网站了解龙岗网站建设