c++中STL容器中的排序
1.c++STL中只有list自带了排序函数:
(1).若list中存放的是int类型或者string类型,直接利用sort即可:
list <int> list1;
};
return a.num>b.num;//从大到小排序
};
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int cmp(int a,int b){
return a > b;//按降序排序
}
int main(){
vector<int> vec;
vec.push_back(324);
vec.push_back(344);
vec.push_back(2134);
vec.push_back(23);
vec.push_back(12);
vec.push_back(134);
vec.push_back(987);
sort(vec.begin(),vec.end(),cmp);
vector<int>::iterator it;
for(it = vec.begin();it != vec.end();it++)
cout<<*it<<" ";
cout<<endl;
return 0;
}
3.STL中的set排序:其中set本身是自带排序的,默认按升序进行排序:
若定义set中存储的为结构体:
#include <iostream>
#include <string>
#include <set>
using namespace std;
struct intComp {
bool operator() (const int& lhs, const int& rhs) const{
return lhs > rhs;
}
};
struct strComp
{
bool operator() (const string& str1, const string& str2) const {
return str1.length() < str2.length();
}
};
int main() {
int a[] = {10, 20, 30, 40, 50};
set<int, intComp> s1(a, a + 5);
for (auto it = s1.cbegin(); it != s1.cend(); it++)
{
cout << *it << " ";
}
cout << endl;
string b[] = {"apple", "banana", "pear", "orange", "strawberry"};
set<string, strComp > s2(b, b + 5);
for (auto it = s2.cbegin(); it != s2.cend(); it++)
{
cout << *it << " ";
}
cout << endl;
system("pause");
return 0;
}
c++中STL容器中的排序的更多相关文章
- 【转】c++中Vector等STL容器的自定义排序
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1.Copy构造函数 2.赋值=操作符 3.能够销毁对象的析构函数 另外: 1. ...
- C++中STL容器的比较
基本参考 https://blog.csdn.net/qq_14898543/article/details/51381642 容器特性: vector:典型的序列容器,C++标准严格要求次容器的实现 ...
- 删除STL容器中的元素
有关stl容器删除元素的问题,错误的代码如下: std::vector<struct> mFriendList; ... std::vector<struct>::iterat ...
- STL容器——对map排序
STL容器(三)——对map排序 对于map的排序问题,主要分为两部分:根据key排序:根据value排序.下面我们就分别说一下~ 1. 根据key进行排序 map默认按照key进行升序排序 ,和输入 ...
- WPF中Grid容器中VerticalAlignment和HorizonAlignment和Margin的关系。
在WPF中,经常使用Grid容器,来布局我们想要显示的对象. 这就不可避免的要和布局在其中的控件的VerticalAlignment特性,HorizonAlignment特性,以及Magin特性打交道 ...
- c++中stl容器的常用示例
1. set(集合)——包含了经过排序了的数据,这些数据的值(value)必须是唯一的. 也就是说输入set容器后得到数据,会去重并排序. s.insert()插入一个元素 s.begin ...
- 自定义String类,并且实现在STL容器中添加自定义的类型
13.44 编写标准库string类的简化版本,命名String.你的类应该至少有一个默认构造函数和一个接受C风格字符串指针参数的构造函数.使用allocator为你的String类分配所需内存. 1 ...
- spring中获取容器中的Bean为什么前转成接口而不是实现类
简单介绍一下上下文,userService是服务层接口有一个save方法,userServiceImpl是该接口的实现类重写了save方法. applicationContext.xml如图: 后台代 ...
- ios 中在容器中移除单个控件的两个方法Subview
我们知道[parentView removeFromSuperView]; 会把全部的view都移除.以下我们可以通过给subView设一个tag,然后遍历所有的subView,找到目标subVie ...
随机推荐
- VS2017提醒找不到MSVCR110D.dll
我的电脑时win10我已解决,不能传文件,需要联系我
- mysql语句将日期转换为时间戳的方法
mysql将日期转换为时间戳更新数据库: update test set creattime=UNIX_TIMESTAMP('2018-04-19') 替换字段为当前日期: update test s ...
- Linux c codeblock的使用(四):创建自己的静态函数库
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linu ...
- 简单的新手加法运算(基于Struts2)
软件151 王帅 在搭好框架的前提下,首先编写action.java文件: import com.opensymphony.xwork2.ActionSupport; public class Us ...
- python学习------模块
模块(modue)的概念 在计算机程序开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件 ...
- Centos 安装dhcp及简单配置
install yum -y install dhcp file /etc/dhcp/dhcpd.conf eg:-------------------------------- ddns-updat ...
- egret贝塞尔曲线运动
class MtwGame { public constructor() { } private static _instance: MtwGame; public static get Instan ...
- yumiot的发展历程。
yumiot,大家可能没有听说过,不过作为物联网行业一颗冉冉升起的新星,大家有必要加深这一方面的了解.我先简单介绍一下这个企业.物联网,作为国家大力扶持的行业,相信大家身边也有很多这样的物联网企业.不 ...
- 报表工具highcharts使用心得
公司让做一个报表页面,搜索了下发现highcharts比较符合业务需求,下面就说一下使用心得. $('#container').highcharts({ title: { text: '部门统计图' ...
- 为期一周的C#学习状态与感受
我,女,28,有娃两岁.博客开张,发发牢骚,进入第二阶段. 我这个年龄我这个状态,我决定重拾以前放弃的行业,打听了很多相关工作的朋友和查阅了很多关于这个问题的网页,有两种声音在交奏,一边是去吧,趁现在 ...