提示:杂记
时间:2020/09/11
一、判断闰年
闰年:
能被4整除,不能被100整除。
能被4整除,也能被100整除(能被400整除)。
int fun(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
{
return 366;
}
return 365
}
二、增强型for循环
1. 适用对象
(1)数组、容器
2. 代码
#include <iostream>
#include<vector>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int arry[5] = { 3,4,2,8,9 };
vector<int>number;
number.push_back(2);
number.push_back(7);
number.push_back(9);
number.push_back(6);
number.push_back(3);
//数组
for (auto a : arry)
{
cout <<"arry:"<< a << endl;
}
//容器
for (auto a : number)
{
cout << "number:" << a << endl;
}
//迭代器
for (auto it = number.begin(); it != number.end(); it++)
{
cout << "it:"<<*it << endl;
}
system("pause");
return 0;
}
Dev-c++5.11 不支持
三、容器(数组)排序(stl)
使用标准库函数
1.分类
参考资料:
c语言网
- 容器自带的sort()函数
只有list 容器自带sort()函数
容器vector,deque,string没有自带的sort()成员 - std::sort()
标准库的成员函数sort()函数,能对大多数类型进行比较, 也可以自己定义比较的类型。
使用时应该添加头文件:#include< algorithm>
注意:sort() 函数受底层实现方式的限制,它仅适用于普通数组和部分类型的容器。换句话说,只有普通数组和具备以下条件的容器,才能使用 sort() 函数:
(1)、容器支持的迭代器类型必须为随机访问迭代器。这意味着,sort() 只对 array、vector、deque 这 3 个容器提供支持。
(2)、如果对容器中指定区域的元素做默认升序排序,则元素类型必须支持<小于运算符;同样,如果选用标准库提供的其它排序规则,元素类型也必须支持该规则底层实现所用的比较运算符;
(3)、sort() 函数在实现排序时,需要交换容器中元素的存储位置。这种情况下,如果容器中存储的是自定义的类对象,则该类的内部必须提供移动构造函数和移动赋值运算符。
(4)、另外还需要注意的一点是,对于指定区域内值相等的元素,sort() 函数无法保证它们的相对位置不发生改变。
2.示例
- list容器
代码如下(示例):
list<int>test;
test.sort();//为升序排序,
test.sort(greater<int>())//降序的是:
- std:sort()
template < class RandomAccessIterator>
//使用operator<进行比较,默认升序排序,
void sort (RandomAccessIterator first, RandomAccessIterator last );
template<class RandomAccessIterator, class Compare>
//第二个版本使用comp做比较
void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
less(小于)
greater(大于)
equal_to(等于)
not_equal_to(不相等)
less_equal(小于等于)
greater_equal(大于等于)
代码如下(示例):
#include <iostream>
#include<vector>
#include<list>
#include<algorithm>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int arry[5] = { 3,4,2,8,9 };
vector<int>number;
list<int>test;
test.push_back(3);
test.push_back(5);
test.push_back(1);
test.push_back(8);
test.push_back(7);
number.push_back(2);
number.push_back(7);
number.push_back(9);
number.push_back(6);
number.push_back(3);
test.sort();//容器排序,默认升序
//降序为:test.sort(greater<int>())
sort(arry,arry+5);//默认升序
sort(number.begin(), number.end(), greater<int>());//降序
//数组
for (auto a : arry)
{
cout <<"arry:"<< a << endl;
}
//容器vector
for (auto a : number)
{
cout << "number:" << a << endl;
}
//容器list
for (auto it = test.begin(); it != test.end(); it++)
{
cout << "it:"<<*it << endl;
}
system("pause");
return 0;
}
版权声明:本文为weixin_43519971原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。