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常用整理的更多相关文章

  1. C++ STL 常用算术和生成算法

    C++ STL 常用算术和生成算法 accumulate() accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值. #include<numeric> ...

  2. C++ STL 常用拷贝和替换算法

    C++ STL 常用拷贝和替换算法 copy() 复制 vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); v ...

  3. C++ STL 常用排序算法

    C++ STL 常用排序算法 merge() 以下是排序和通用算法:提供元素排序策略 merge: 合并两个有序序列,存放到另一个序列. 例如: vecIntA,vecIntB,vecIntC是用ve ...

  4. C++ STL 常用查找算法

    C++ STL 常用查找算法 adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器.否则返回past-the-end. ...

  5. C++ STL 常用遍历算法

    C++ STL 常用遍历算法 STL的容器算法迭代器的设计理念 1) STL的容器通过类模板技术,实现数据类型和容器模型的分离 2) STL的迭代器技术实现了遍历容器的统一方法:也为STL的算法提供了 ...

  6. STL常用结构与方法简明总结

    C++常用的数据结构 序列式容器 vector(向量.有序数列),list(双向链表),deque(双端队列) 适配器容器 stack(栈),queue(队列) 关联式容器 map(映射.键值对二叉树 ...

  7. STL常用序列容器

    这里简要的记述一下STL常用容器的实现原理,要点等内容. vector vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而arra ...

  8. C++中的STL大法整理

    C++中的STL大法整理 由于碰到了一些不知道怎么用的STL vector vector是数组的STL,对于普通数组的优势就在于,可以动态地变化数组长度.那么面对一些数据范围非常大而又可以边读入边处理 ...

  9. 【pat】C++之刷题常用STL容器整理

    1.vector 动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图). 头文件 #include<vec ...

随机推荐

  1. 20165304《JAVA程序设计》第二周学习总结

    课本内容总结 第一章 1.标识符与关键字 (1) 标识符由字母.数字.下划线"_".美元符号"$"组成,第一个字符不能是数字. 不能把java关键字和保留字作为 ...

  2. CentOS 静态IP分配,提示Error, some other host already uses address解决办法

    (一)第一 修改 ifup-eth vi /etc/sysconfig/network-scripts/ifup-eth #if ! /sbin/arping -q -c 2 -w 3 -D -I $ ...

  3. Django admin 组件 原理分析与扩展使用 之 sites.py (一)

    一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自 ...

  4. 为hadoop集群设置静态IP

    -更新2017年3月1日19:38:49-- 以下是Nat 网络设置,如果你想要同一局域网内的主机可以远程连接上你的集群环境,建议使用桥接模式,具体原因可看文末三种网络连接模式的区别. 由于之前设置集 ...

  5. PAT乙级-1037. 在霍格沃茨找零钱(20)

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...

  6. cookie 使用方法

    //写cookies setCookie: function(name, value) { let days = 1 let exp = new Date() exp.setTime(exp.getT ...

  7. 使用c#对MongoDB进行查询(1)

    1.BsonDocument对象 在MongoDB.Bson命名空间下存在一个BsonDocument类,它是MongoDB的文档对象,代表着MongoDB中不规则数据一条条实体模型.可以使用Bson ...

  8. Mycat 常用管理命令说明

    Mycat 提供了类似数据库的管理监控方式,可以通过 MySQL 命令行登陆管理端口 9066 执行相应的 SQL 语句进行管理,可以可以通过 JDBC 的方式进行远程连接管理,使用 MySQL 命令 ...

  9. 详解Tomcat线程池原理及参数释义

    omcat线程池有如下参数: maxThreads, 最大线程数,tomcat能创建来处理请求的最大线程数 maxSpareTHreads, 最大空闲线程数,在最大空闲时间内活跃过,但现在处于空闲,若 ...

  10. C#设置和获取系统环境变量

    C#设置和获取环境变量 1.前言 本来想拿学校机房的Android编辑器直接粘到自己电脑上用,发现它的eclipse是 32位的,而我的JDK是64位的,于是想到干脆装两个JDK,用C#做一个能够更改 ...