IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 容器深究——list详解与sort排序 -> 正文阅读

[数据结构与算法]容器深究——list详解与sort排序

三种遍历方式:

  1. 迭代器遍历
list<int> It;
It.push_back(1);
It.push_back(2);
It.push_back(3);
It.push_back(4);
list<int> iterator it=It.begin();
while(it!=It.end())
{
	cout<<*it<<"";
	++it;
}
cout<<endl;
  • 范围for(推荐,因为看起来简洁)
/*在Linux下要加上 g++ test_list1.cpp -std=C++11*/
//纯范围for
list<int> It;
It.push_back(1);
It.push_back(2);
It.push_back(3);
It.push_back(4);
for(auto e: It)
{
	cout<<e<<"";
}
cout<<endl;
//迭代器区间+范围for
int a[]={16,2,3,77};
list<int> it1(a,a+4);
//原生指针可以当天然的迭代器使用,其实vector和string的迭代器也是原生指针
for(auto e: it1)
{
	cout<<e<<"";
}
cout<<endl;

拓展知识
sort排序(包含在算法argorithm头文件中的):

  • 升序
#include<algorithm>
//sort排序是在其中包含的
int a[]={16,2,3,77};
vector<int> v(a,a+4);
sort(v.begin(),v.end());//两个参数为迭代器区间

输出结果将是把数组a按升序排序,说到这里可能就有人会问怎么样用它降序排列呢?

标准库里已经有现成的了,就在functional里,include进来就行了。functional提供了一堆基于模板的比较函数对象。它们是(看名字知意思):equal_to、not_equal_to、greater、greater_equal、less、less_equal。对于这个问题来说,greater就足够了,直接拿过来用:

  • 降序
#include<algorithm>
#include<functional> //greater模板函数包含其中
int a[]={16,2,3,77};
vector<int> v(a,a+4);
sort(v.begin(),v.end(),greater<int>());

注意:这种方式不能对list进行排序,因为sort的底层是快速排序,快速排序要求容器的迭代器必须是随机迭代器(list是双向迭代器)
比如:快速排序要三个数取中优化,不支持随机访问,效率不够

//不支持sort(It.begin(),It.end())这种用法
It.sort();
//支持,但是不建议使用

常见的迭代器分为三类:

单向:只能使用++,如 forword_list
双向:++,–,如 list
随机:++,–,+,-等,如vector、string

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:50:27  更:2022-03-15 22:56:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:38:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码