STL常用整理
S T L
Sting:
<< 判断拼音序 size length 字符串长度
str[n] 代表字符串中的一个字符 可用作左值
string::size_type 用于表示字符串长度计量
#include <cctype>
只控制字符
isalpha(); 字符串中是否为字母
ispunct(s[n]) 检查某一个字符是否为标点符号
Isalnum() 检查某一个子否是字母或数字
Iscntrl() 是否为控制字符
Isdigit() 是否为数字
Isxdigit() 是否为十六进制
Islower() 是否为小写字母
Isupper() 是否为大写字母
Isspace() 是否为空格
Tolower() 把每一个变成小写
Toupper() 把每一个变成大写
string str("iloveyou");
for(int i = 0;i < str.size();i++)
{
str[i] = toupper(str[i]);
}
//比较
s1.compare(3,3,s2,3,3);//s1和s2比较从第三个开始后的三个 s2可以为字符串指针
//count查找个数
int num = count(ivec.begin(),ivec.end(),k); 从ivec中获取数值k的数量
//字符串查找
s.find(args);
s.rfind(args);//这两个为精确匹配查找 一个从左向右 一个从右向左 返回第一个下标值
s.find_first_of(args);
s.find_last_of(args);
s.find_first_not_of(args);
s.find_last_not_of(args);//这四个为模糊查找 s中有任意字符在args中便返回下标
//example
string name("AnnaBelle");
String::size_type pos1 = name.find("Bell"); 得到4
如果找不到 pos1==string::npos
name = "r2d3";
string numerics("0123456789");
String::size_type pos1 = 0;
string::size_type pos = name.find_first_of(numerics,pos1);
//name中的2首先出现 故得到下标pos为1;
//pos1为从numerics字符串的pos1位置开始
int
int a = 12;//这是十进制
int b = 0x12;//这是十六进制
int c = 012;//这是八进制
Int d;
Cin >> hex >> d;
Cout << oct << d;
#include <bitset>
Bitset<16> a;//自动初始化 a中为16个0
bitset类型 二进制位处理
bitset<32> a;//a里边可以放32个二进制位 初始化为0
bitset<16> b(0xffff);//用十六进制初始化 变为16个1
bitset<5> five(string("01010");//用字符串初始化
bool is_set = a.any();//是否至少有一个1
bool is_not_set = a.none();//是否一个1都没有
size_t bits_set = a.count();//a里一共有几个1
a.size(); //一共有几位
a[5] = 1;//支持下标操作
a.set(5);//同上
a.set(); //全部置为1
a.reset(5); //下标对象置为0
a.reset(); //全部置为0
a.flip(); //全部翻转
a.filp(5); //翻转某一位
a = ~a; //取反
unsigned long b = a.to_ulong();//转换成十进制
string str("000000000111101010");
bitset<32> f(str,5,4);//用str初始化 从第五位开始 要四位
bitset<8> e;
cin >> e;//用终端输入赋值
#include <vector>
vector只能在末尾操作数据
vector<int> a(10,2);//10个2初始化
a.push_back(k);
push_back();
cout << *min_element(a.begin(),a.end()) << endl;//获取最小值
cout << *max_element(a.begin(),a.end()) << endl;//获取最大值
find(begin(),end(),4);//查找4 返回一个迭代器
find_first_of(b,e,sb,se);//在b到e中查找sb到se中任意一个元素 模糊查找 返回迭代器
search(b,e,sb,se);//在b到e中查找sb到se完全相同顺序的元素 返回迭代器 精确查找 相反的函数find_end();从右向左
search_n(begin,end,c,v);//查找连续的c个v
search_n(begin,end,c,v,greater<>());//查找连续c个比v大的数值 less<>()
adjacent_find(b,e);//查找连续的两个相等的元素
remove(begin,end,k); //查找到k的位置将后面的数据逐步向前粘贴 造成的后果就是最后面出现数据重复 如果判断过程中end为静态的 可在输出的时候显示达到确实删除的目的
vec.erase(begin,end);//确实删除了
vec.erase(itr);//确实删除了
//已序区间查找
lower_bound(ivec.begin(),ivec.end(),k);//在区间内找到第一个k的位置 返回迭代器
upper_bound(ivec.begin(),ivec.end(),k);//在区间内找到最后一个k的位置 返回迭代器
pair<vector<int>::iterator,vector<int>::iterator> range= equal_range(ivec.begin(),ivec.end(),5);
range.first;//返回迭代器
range.second;//返回迭代器
#include <deque>
deque<int> a;
deque 可以在开始和末尾操作数据
a.push_back(k);
a.push_front(k);
distance(a.begin(),begin); //begin到起始的下标距离
a.pop_front();
a.pop_back();
#include <list>
list<int> a(10,0);
a.insert(迭代器,10);插入10
a.insert(迭代器,10,2);插入十个2
a.sort();
a.reverse();
list<int>::iterator itr = a.push_fornt(2);//迭代器指向该数值
a.push_back();
a.reverse();
#include <stack>
stace<int,deque<int> > s;
stack<int> s1;//默认用deque
s.empty();
s.size();
s.pop();
s.top();
s.push(item);
#include <queue>
queue<int,deque<int> > q;//默认deque
queue<int> q2;
q.empty();
q.size();
q.front();
q.back();
q.pop();
q.push(item);
priority_queue<int> pq;//最前端始终为最大值
容器.swap(容器);//交换
vec.assign(n,k);//用n个k重新赋值
#include <algorithm>
reverse(begin,end);
sort(begin,end);`
#include <iomanip>
Cout.fill(‘a’);
Cout << setw(5);
Cout << left
Cout << hex
Cin >> oct
Cout << Setprecision(6);
cout<<setiosflags(ios::fixed);
Cout << uppercase
Cout << lowercase
cout << showpos
STL常用整理的更多相关文章
- C++ STL 常用算术和生成算法
C++ STL 常用算术和生成算法 accumulate() accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值. #include<numeric> ...
- C++ STL 常用拷贝和替换算法
C++ STL 常用拷贝和替换算法 copy() 复制 vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); v ...
- C++ STL 常用排序算法
C++ STL 常用排序算法 merge() 以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列. 例如: vecIntA,vecIntB,vecIntC是用ve ...
- C++ STL 常用查找算法
C++ STL 常用查找算法 adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. ...
- C++ STL 常用遍历算法
C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了 ...
- STL常用结构与方法简明总结
C++常用的数据结构 序列式容器 vector(向量.有序数列),list(双向链表),deque(双端队列) 适配器容器 stack(栈),queue(队列) 关联式容器 map(映射.键值对二叉树 ...
- STL常用序列容器
这里简要的记述一下STL常用容器的实现原理,要点等内容. vector vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而arra ...
- C++中的STL大法整理
C++中的STL大法整理 由于碰到了一些不知道怎么用的STL vector vector是数组的STL,对于普通数组的优势就在于,可以动态地变化数组长度.那么面对一些数据范围非常大而又可以边读入边处理 ...
- 【pat】C++之刷题常用STL容器整理
1.vector 动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图). 头文件 #include<vec ...
随机推荐
- JDK1.5-1.7的特性
JDK1.5新特性: 1.自动装箱与拆箱 2.枚举(常用来设计单例模式) 3.静态导入 (import static java.lang.Math.*;) 4.可变参数 eg: public sta ...
- [BZOJ1012] [JSOI2008] 最大数maxnumber (ST表)
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. 插 ...
- error:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
问题:调用的方法在一个接口类中,但我并没有注入那个被调用的类 解决:在UserEntity前加上@Autowired @Controller public class MainController { ...
- SLIC superpixel算法
标题 SLIC superpixel算法 作者 YangZheng 联系方式 263693992 SLIC算法是simple linear iterative cluster的简称,该算法用来生成超像 ...
- PAT乙级-1047. 编程团体赛(20)
编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...
- Unity3D NGUI事件监听的综合管理
首先,将Event Listener挂在按钮上 Event Listener的源码很简单 就是利用C#的时间委托机制 注册了UI场景的事件而已 public class UIEventListener ...
- NEO从入门到开窗(2) - 智能合约的面相
一.啰嗦两句 昨天讲了智能合约的一生,那丫长啥样啊?今儿我就跟各位唠叨唠叨. 二.一个简单的智能合约 下面这段就是NEO实例源码里的一个,干撒用的?聪明的你一眼儿就看出来了吧,就是一个所谓域名合约的增 ...
- python函数式编程之生成器
在前面的学习过程中,我们知道,迭代器有两个好处: 一是不依赖索引的统一的迭代方法 二是惰性计算,节省内存 但是迭代器也有自己的显著的缺点,那就是 不如按照索引取值方便 一次性,只能向后取值,不能向前取 ...
- 使用async和wait进行异步编程
本文来源于博客园-钱智慧,转载请注明出处 代码示例 // 要让一个方法成为异步方法: // - async修饰符. // - 返回类型是 Task 或者 Task<T>. 具体来说,如果函 ...
- VMware安装Centos6.4及CentOS的基本设置
1.vmware安装vmware tools实现与本地磁盘文件夹的共享 2.设置Centos网络 vmware采用nat方式.虚拟机网络使用虚拟网卡(VMware Network Adapter VM ...