1.sort(a,a+n); 从小到大排序a[n]。
sort()是不稳定排序,stable_sort()是稳定排序。
2.lower_bound和upper_bound (注意数组下标越界)
函数upper_bound()返回的在前闭后开区间查找的关键字的上界,如一个数组number序列1,2,2,4.upper_bound(2)后,返回的位置是3(下标)也就是4所在的位置。
3.向量 vector; 不定长数组。
#include
#include
#include
using namespace std;
int main()
{
vector v;
v.push_back(5);
v.push_back(7);
v.push_back(2);
v.push_back(1);
vector::iterator it;
for(it = v.begin(); it != v.end(); it++)
cout << *it << endl;
cout << "容器中第一个元素是:" << *v.begin() << endl;
cout << "容器中最后一个元素是:" << *(--v.end()) << endl;
}
v.erase(unique(v.begin(), v.end()), v.end());//去重。
#include
#include
#include
using namespace std;
int main()
{
vector v;
for (int i = 0; i < 6; i++)
{
int x; cin >> x;
v.push_back(x); //在vector尾部加入一个数据
}
sort(v.begin(),v.end());//从小到大排序
v.erase(unique(v.begin(), v.end()), v.end());//去重
for (int i = 0; i < v.size(); i++)
cout << v[i] << " ";
}
4.set 集合 自动去重并且从小到大排序
#include
#include
#include
using namespace std;
int main()
{
set s;
s.insert(5);
s.insert(7);
s.insert(2);
s.insert(1);
set::iterator it;
for(it = s.begin(); it != s.end(); it++)
cout << *it << endl;
cout << "容器中第一个元素是:" << *s.begin() << endl;
cout << "容器中最后一个元素是:" << *(--s.end()) << endl;
}
1
2
5
7
容器中第一个元素是:1
容器中最后一个元素是:7
5.multiset 多重集合
multiset所有用法和set基本相同,但multiset和set不同点就是multiset不去重,set去重
6.memcpy 内存拷贝函数,功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
把a复制到b:
#include
int a[5] = {1, 2, 3, 4, 5}, b[5];
memcpy(b, a, sizeof(a));
7.fill(arr, arr + n, 要填入的内容); //充填数组
#include
fill(arr, arr + 10, 2);//数组
fill(v.begin(), v.end(), -1);//vector
8.accumulate()
accumulate带有三个形参:头两个形参指定要累加的元素范围[first,last),第三个形参则是累加的初值。
T accumulate( InputIt first, InputIt last, T init )
#include
int sum=accumulate(b,b+n,0);//数组 初值0
int sum=accumulate(v.begin(),v.end(),42);//vector,初值42
#include
#include
#include
#include
using namespace std;
int main()
{
char a[5]={'a','b','c','d','e'};
string sum = accumulate(a,a+5, string(""));
cout<
#include
#include
#include
#include
using namespace std;
int main()
{
vector v;
v.push_back('a');
v.push_back('b');
v.push_back('c');
v.push_back('d');
v.push_back('e');
string sum = accumulate(v.begin() , v.end() , string(""));
cout<
结果都是abcde
9.
isalnum //检查字符是否为字母或数字
isalpha //检查字符是否为字母
islower //检查字符是否为小写
isupper //检查字符是否为大写字符
isdigit //检查字符是否为数字
isxdigit //检查字符是为十六进制字符
iscntrl //检查字符是否为控制字符
isgraph //检查字符是否为图形字符
isspace //检查字符是否为空白符
isblank //(C++11) 检查字符是否为空格符
isprint //检查字符是否为打印字符
ispunct //检查字符是否为标点符
tolower //转换字符为小写
toupper //转换字符为大写