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

中山做网站比较好wordpress windows 10

中山做网站比较好,wordpress windows 10,微信公众平台推广,建设电子商务系统网站文章目录 listvectormapset性能比较总结 list 列表#xff08;list#xff09;是C STL中的一种容器类型#xff0c;它是一个双向链表#xff0c;可以在任意位置高效地添加、删除、移动元素。 以下是一些常用的列表操作#xff1a; 创建列表 #include list std… 文章目录 listvectormapset性能比较总结 list 列表list是C STL中的一种容器类型它是一个双向链表可以在任意位置高效地添加、删除、移动元素。 以下是一些常用的列表操作 创建列表 #include list std::listint myList;添加元素 myList.push_back(1); // 在列表尾部添加元素 myList.push_front(2); // 在列表头部添加元素 myList.insert(myList.begin(), 3); // 在指定位置插入元素删除元素 myList.pop_back(); // 删除尾部元素 myList.pop_front(); // 删除头部元素 myList.erase(myList.begin()); // 删除指定位置的元素遍历列表 std::listint::iterator it; for(itmyList.begin(); it!myList.end(); it) {std::cout *it ; }获取列表大小 std::cout myList.size() std::endl;判断列表是否为空 if(myList.empty()) {std::cout List is empty std::endl; }清空列表 myList.clear();列表排序 myList.sort(); // 默认从小到大排序 myList.sort(std::greaterint()); // 从大到小排序反转列表 myList.reverse();以上是一些常用的列表操作更多操作可以参考C STL中list的文档。 vector C中的vector是STL标准模板库中的容器之一用于存储动态大小的元素序列。 以下是vector的常见操作 创建一个空的vector vectorint vec; // 创建一个空的vectorintvectorstring strVec; // 创建一个空的vectorstring在vector末尾添加元素 vec.push_back(1); // 在vector末尾添加一个int类型元素1strVec.push_back(hello); // 在vector末尾添加一个string类型元素hello访问vector中的元素 int firstElem vec[0]; // 访问第一个元素string lastElem strVec.back(); // 访问最后一个元素获取vector的大小 int size vec.size(); // 获取vector中元素的个数bool isEmpty strVec.empty(); // 判断vector是否为空删除vector中的元素 vec.pop_back(); // 删除vector末尾的一个元素strVec.erase(strVec.begin() 2); // 删除vector中索引为2的元素清空vector中所有元素 vec.clear(); // 清空vector中所有元素strVec.resize(0); // 将vector的大小设置为0遍历vector中的所有元素 for (int i 0; i vec.size(); i) {cout vec[i] ;}for (auto s : strVec) {cout s ;}第二种方法可以使用C11中的range-based for循环。 map C中的map是STL标准模板库中的关联容器之一用于存储键值对。 以下是map的常见操作 创建一个空的map mapstring, int myMap; // 创建一个空的map键为string类型值为int类型在map中插入键值对 myMap.insert(make_pair(apple, 10)); // 在map中插入键为apple值为10的键值对myMap[banana] 20; // 在map中插入键为banana值为20的键值对访问map中的元素或查找键 int value myMap[apple]; // 访问键为apple的值auto it myMap.find(banana); // 查找键为banana的迭代器if (it ! myMap.end()) {int value it-second; // 获取迭代器指向的值}获取map的大小 int size myMap.size(); // 获取map中键值对的个数bool isEmpty myMap.empty(); // 判断map是否为空删除map中的键值对 myMap.erase(apple); // 删除键为apple的键值对auto it myMap.find(banana);if (it ! myMap.end()) {myMap.erase(it); // 删除迭代器指向的键值对}清空map中的所有键值对 myMap.clear(); // 清空map中的所有键值对遍历map中的所有键值对 for (auto it myMap.begin(); it ! myMap.end(); it) {cout it-first : it-second endl;}for (auto elem : myMap) {cout elem.first : elem.second endl;}第二种方法可以使用C11中的range-based for循环。 set C中的set是STL标准模板库中的关联容器之一用于存储不重复的元素并按照一定顺序进行排序。 以下是set的常见操作 创建一个空的set setint mySet; // 创建一个空的set元素为int类型在set中插入元素 mySet.insert(10); // 在set中插入元素10mySet.insert(20); // 在set中插入元素20mySet.insert(30); // 在set中插入元素30访问set中的元素或查找元素 auto it mySet.find(20); // 查找元素20的迭代器if (it ! mySet.end()) {int value *it; // 获取迭代器指向的值}获取set的大小 int size mySet.size(); // 获取set中元素的个数bool isEmpty mySet.empty(); // 判断set是否为空删除set中的元素 mySet.erase(20); // 删除元素20auto it mySet.find(30);if (it ! mySet.end()) {mySet.erase(it); // 删除迭代器指向的元素}清空set中的所有元素 mySet.clear(); // 清空set中的所有元素遍历set中的所有元素 for (auto it mySet.begin(); it ! mySet.end(); it) {cout *it endl;}for (auto elem : mySet) {cout elem endl;}第二种方法可以使用C11中的range-based for循环。 性能比较 使用相同的算法对vector、list和set进行插入数据和删除数据操作 //insert number to list,increasing sort void insert_l(int arg){listint::iterator iter;for(iter gl.begin();iter!gl.end();iter){//ergodic listif(arg*iter){gl.insert(iter,arg);//insert numberbreak;}}if(iter gl.end()){gl.push_back(arg);//push back number} } //delete number from list void delete_l(){default_random_engine e1(seed);//new random engine with seedwhile(!gl.empty()){uniform_int_distributionunsigned u(0,gl.size()-1);listint::iterator iter gl.begin();//using iteratorfor(int i0;iu(e1);i){iter;}gl.erase(iter);//delete number} }结果 Data SizeVector Time (s)List Time (s)100000.2812570.527096500006.79223.202910000026.824107.94715000060.0688333.013200000106.619807.597 使用set在插入和删除200 000数据总共只用了2.2331秒、而vector用了106.619秒、list用了807.597秒 总结 vector的遍历性能明显比list要快。这是因为vector的元素是存储在一块连续的内存空间中可以直接通过指针进行访问。而list的元素是通过链表相互连接起来的无法直接访问需要遍历整个链表才能访问某个元素因此遍历性能相对较低。 vector和list在不同场景下有不同的优劣势需要根据具体情况选择适合的容器。例如需要随机访问或者高效的遍历操作时可以选择vector需要频繁的插入或者删除操作时可以选择list。 set是基于红黑树实现的红黑树是一种自平衡的二叉查找树它具有快速的插入、删除和查找操作的时间复杂度因此在处理大量数据时set的性能表现会更好。
http://www.zqtcl.cn/news/95118/

相关文章:

  • 中石化两学一做网站获取网站域名
  • 吉林长春火车站官网湖北葛洲坝建设工程网站
  • 重庆网站推广服务广告公司女员工深夜兼职
  • 网站的要素是什么wordpress框架解密_day3
  • 抽奖怎么做网站彩页设计公司
  • 推广网站文案素材lamp环境wordpress
  • 合肥网站建设公司 推荐百度下载安装2021
  • 沈阳网站备案照相离婚证app制作软件
  • 唯品会一家做特卖的网站 分析那些网站可以做反链
  • 百度网站排名查询工具网站标签怎么做
  • 如何用ps做网站导航一个网站开发时间
  • 合肥城乡建设网站06628 网页制作与网站建设
  • 网站设计岗位的职责与要求北京网站建设 合一
  • 网站制作app开发公司网站建设 英文
  • 毕业设计网页制作网站建设网站预约挂号怎么做
  • 河东天津网站建设永州做网站的公司
  • 网页制作与网站建设填空题免费的企业邮箱怎么申请
  • 智慧农业网站建设沈阳建设信息网
  • 永久免费素材网站个人网站域名所有权
  • 做网站都需要什么工具网站开发培训哪里好
  • 做网站里面的图片像素要求安徽 网站建设
  • 电子商务推广网站wordpress小程序搭建
  • 张家港网站开发培训广告代理那些平台可以给网站做外链
  • 搞一个公司网站得多少钱中国航天空间站最新消息
  • php移动网站开发微商做图王官方网站
  • 制作网站中英文字体不能为网页设计与制作教程试题
  • 网站建设与管理案例柳洪轶wordpress学校站模板
  • 湖北省和住房建设厅官方网站自媒体专业
  • 榆林网站开发自己建设购物网站
  • 新材建设局网站百度提问首页