S T L

Sting:

<< 判断拼音序 size length 字符串长度

str[n] 代表字符串中的一个字符 可用作左值

string::size_type 用于表示字符串长度计量

  1. #include <cctype>
  2. 只控制字符
  3. isalpha(); 字符串中是否为字母
  4. ispunct(s[n]) 检查某一个字符是否为标点符号
  5. Isalnum() 检查某一个子否是字母或数字
  6. Iscntrl() 是否为控制字符
  7. Isdigit() 是否为数字
  8. Isxdigit() 是否为十六进制
  9. Islower() 是否为小写字母
  10. Isupper() 是否为大写字母
  11. Isspace() 是否为空格
  12. Tolower() 把每一个变成小写
  13. Toupper() 把每一个变成大写
  14. string str("iloveyou");
  15. for(int i = 0;i < str.size();i++)
  16. {
  17. str[i] = toupper(str[i]);
  18. }
  19. //比较
  20. s1.compare(3,3,s2,3,3);//s1和s2比较从第三个开始后的三个 s2可以为字符串指针
  21. //count查找个数
  22. int num = count(ivec.begin(),ivec.end(),k); ivec中获取数值k的数量
  23. //字符串查找
  24. s.find(args);
  25. s.rfind(args);//这两个为精确匹配查找 一个从左向右 一个从右向左 返回第一个下标值
  26. s.find_first_of(args);
  27. s.find_last_of(args);
  28. s.find_first_not_of(args);
  29. s.find_last_not_of(args);//这四个为模糊查找 s中有任意字符在args中便返回下标
  30. //example
  31. string name("AnnaBelle");
  32. String::size_type pos1 = name.find("Bell"); 得到4
  33. 如果找不到 pos1==string::npos
  34. name = "r2d3";
  35. string numerics("0123456789");
  36. String::size_type pos1 = 0;
  37. string::size_type pos = name.find_first_of(numerics,pos1);
  38. //name中的2首先出现 故得到下标pos为1;
  39. //pos1为从numerics字符串的pos1位置开始
  40. int
  41. int a = 12;//这是十进制
  42. int b = 0x12;//这是十六进制
  43. int c = 012;//这是八进制
  44. Int d;
  45. Cin >> hex >> d;
  46. Cout << oct << d;
  47. #include <bitset>
  48. Bitset<16> a;//自动初始化 a中为16个0
  49. bitset类型 二进制位处理
  50. bitset<32> a;//a里边可以放32个二进制位 初始化为0
  51. bitset<16> b(0xffff);//用十六进制初始化 变为16个1
  52. bitset<5> five(string("01010");//用字符串初始化
  53. bool is_set = a.any();//是否至少有一个1
  54. bool is_not_set = a.none();//是否一个1都没有
  55. size_t bits_set = a.count();//a里一共有几个1
  56. a.size(); //一共有几位
  57. a[5] = 1;//支持下标操作
  58. a.set(5);//同上
  59. a.set(); //全部置为1
  60. a.reset(5); //下标对象置为0
  61. a.reset(); //全部置为0
  62. a.flip(); //全部翻转
  63. a.filp(5); //翻转某一位
  64. a = ~a; //取反
  65. unsigned long b = a.to_ulong();//转换成十进制
  66. string str("000000000111101010");
  67. bitset<32> f(str,5,4);//用str初始化 从第五位开始 要四位
  68. bitset<8> e;
  69. cin >> e;//用终端输入赋值
  70. #include <vector>
  71. vector只能在末尾操作数据
  72. vector<int> a(10,2);//10个2初始化
  73. a.push_back(k);
  74. push_back();
  75. cout << *min_element(a.begin(),a.end()) << endl;//获取最小值
  76. cout << *max_element(a.begin(),a.end()) << endl;//获取最大值
  77. find(begin(),end(),4);//查找4 返回一个迭代器
  78. find_first_of(b,e,sb,se);//在b到e中查找sb到se中任意一个元素 模糊查找 返回迭代器
  79. search(b,e,sb,se);//在b到e中查找sb到se完全相同顺序的元素 返回迭代器 精确查找 相反的函数find_end();从右向左
  80. search_n(begin,end,c,v);//查找连续的c个v
  81. search_n(begin,end,c,v,greater<>());//查找连续c个比v大的数值 less<>()
  82. adjacent_find(b,e);//查找连续的两个相等的元素
  83. remove(begin,end,k); //查找到k的位置将后面的数据逐步向前粘贴 造成的后果就是最后面出现数据重复 如果判断过程中end为静态的 可在输出的时候显示达到确实删除的目的
  84. vec.erase(begin,end);//确实删除了
  85. vec.erase(itr);//确实删除了
  86. //已序区间查找
  87. lower_bound(ivec.begin(),ivec.end(),k);//在区间内找到第一个k的位置 返回迭代器
  88. upper_bound(ivec.begin(),ivec.end(),k);//在区间内找到最后一个k的位置 返回迭代器
  89. pair<vector<int>::iterator,vector<int>::iterator> range= equal_range(ivec.begin(),ivec.end(),5);
  90. range.first;//返回迭代器
  91. range.second;//返回迭代器
  92. #include <deque>
  93. deque<int> a;
  94. deque 可以在开始和末尾操作数据
  95. a.push_back(k);
  96. a.push_front(k);
  97. distance(a.begin(),begin); //begin到起始的下标距离
  98. a.pop_front();
  99. a.pop_back();
  100. #include <list>
  101. list<int> a(10,0);
  102. a.insert(迭代器,10);插入10
  103. a.insert(迭代器,10,2);插入十个2
  104. a.sort();
  105. a.reverse();
  106. list<int>::iterator itr = a.push_fornt(2);//迭代器指向该数值
  107. a.push_back();
  108. a.reverse();
  109. #include <stack>
  110. stace<int,deque<int> > s;
  111. stack<int> s1;//默认用deque
  112. s.empty();
  113. s.size();
  114. s.pop();
  115. s.top();
  116. s.push(item);
  117. #include <queue>
  118. queue<int,deque<int> > q;//默认deque
  119. queue<int> q2;
  120. q.empty();
  121. q.size();
  122. q.front();
  123. q.back();
  124. q.pop();
  125. q.push(item);
  126. priority_queue<int> pq;//最前端始终为最大值
  127. 容器.swap(容器);//交换
  128. vec.assign(n,k);//用n个k重新赋值
  129. #include <algorithm>
  130. reverse(begin,end);
  131. sort(begin,end);`
  132. #include <iomanip>
  133. Cout.fill(‘a’);
  134. Cout << setw(5);
  135. Cout << left
  136. Cout << hex
  137. Cin >> oct
  138. Cout << Setprecision(6);
  139. cout<<setiosflags(ios::fixed);
  140. Cout << uppercase
  141. Cout << lowercase
  142. 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. 通过JDBC连接数据库(MySql为例)并读取数据库信息--JSP基础

    1.先建数据库,数据库名为:employee_DB;然后在数据库employee_DB下建表,表名为employee;最后插入数据. create database employee_DB; use ...

  2. 一个题目涉及到的50个Sql语句

    原博客地址 http://blog.csdn.net/maco_wang/article/details/6281484 Student(S#,Sname,Sage,Ssex) 学生表 Course( ...

  3. canvas练手项目(二)——各种操作基础

    想想应该在canvas上面作画了,那么就不得不提到事件了. (打着canvas的旗号,写着mouse事件.挂羊头卖狗肉!哈哈哈哈哈~) 先来看一看HTML事件属性,我们要用的就是Mouse事件,就先研 ...

  4. canvas练手项目(一)——选取图片

    今天无事可做,在春意盎然的下午突发奇想想做一个关于图片处理的在线网页应用.不要问我为什么做这个,因为我想做!关于这个项目,我想基于canvas来实现,canvas是个好东西,我一直很喜欢,就是我没有做 ...

  5. 【2016北京集训测试赛】river

    HINT 注意是全程不能经过两个相同的景点,并且一天的开始和结束不能用同样的交通方式. [吐槽] 嗯..看到这题的想法的话..先想到了每个点的度为2,然后就有点不知所措了 隐隐约约想到了网络流,但并没 ...

  6. 读取MySQL存储二进制的语音、图片(Blob类型)

    /**   * 下载语音   * Remarks:   * @throws Exception   */ public void downloadYuyin() throws Exception { ...

  7. Handsontable 筛选事件

    有时候我们需要知道在使用Handsontable时筛选掉了哪些数据,并对这些数据进行处理,可以使用afterFilter事件来进行相关操作. Handsontable筛选掉的数据没有真的被删除,而是被 ...

  8. Redis 学习相关的网站

    Redis 命令参考 http://doc.redisfans.com/ https://redis.io/commands http://www.redis.net.cn Redis教程 http: ...

  9. window.open打开文件乱码

    问题:刚开始使用window.open在IE兼容模式下打开文件下载出现乱码. 一开始以为是文件名是中文导致的.然后使用a标签的download属性更改文件名解决. <a class=" ...

  10. SpringMvc的传递参数方式 -- url / requestMapping

    在使用spring的项目中,前台传递参数到后台是经常遇到的事, 我们必须熟练掌握一些常用的参数传递方式和注解的使用,废话少说,直接上正文. 1. @requestMapping: 类级别和方法级别的注 ...