1. 强制保留n位小数(位数不足则强制补零)
  
  头文件:
  
  #include <iomanip>
  
  在输出前:
  
  cout<<setprecision(n);
  
  也有不用头文件的方式,在输出前:
  
  cout.setf(ios::fixed);
  
  cout.precision(n);
  
  Printf也可:(以保留3位为例)
  
  double d=2.0;
  
  printf("%.3lf",d);
  
  2.数组清零
  
  头文件及方法:
  
  #include <cstring>
  
  ...
  
  memset(a,0,sizeof(a))
  
  3.动态数组vector
  
  不存东西时不占空间,来多少数据就用多少空间,用于节省空间。
  
  #include  <vector> //调用
  
  ...
  
  vector  < int > a;     //声明
  
  ...
  
  a.push_back (3) //在数组a的后面添加一个数3
  
  a.pop_back()      //在尾部弹出一个数据
  
  a.size()               //返回元素个数
  
  a.clear()             //清空
  
  求值: a[0]  (该数组第一个数) a.back()  (该数组最后一个数)
  
  4.队列queue与栈stack
  
  队列的调用与定义:
  
  #include <queue>
  
  ...
  
  queue <int> q;    
  
  几个函数:
  
  q.empty()             (队列为空返回true 否则返回false)
  
  q.size()                (返回队列元素个数)
  
  q.pop()                 (删除队尾元素)
  
  q.push(a)             (在队尾加入元素a)
  
  q.front()                (返回队首元素)
  
  q.back()               (返回队尾元素)
  
  栈的调用与定义
  
  #include <stack>
  
  ...
  
  stack <int> s;
  
  几个函数:
  
  s.empty()          (栈为空返回true 否则返回false)
  
  s.size()             (返回栈中元素个数)
  
  s.pop()             (过程,删除栈顶元素)
  
  s.top()              (返回栈顶元素)
  
  s.push(a)         (在栈顶加入元素a)
  
   5. C++输入输出(重点)
  
  C输入输出
  
  头文件:
  
  #include <stdio.h>
  
  ...
  
  int n;
  
  scanf("%d",&n);  
  
   字符:%c
  
   字符数组:%s   
  
   long long(unsigned long long): %lld
  
   float: %f
  
   double :  %lf
  
   (注意:scanf和cin一样,遇到空格会结束)
  
   多组数据连续读入(EOF一定要大写):
  
  while (scanf("%d",&t)!=EOF)
  
  输出:
  
  printf("%d",n)
  
  与scanf的区别:不用&取地址
  
  在输出的时候也可直接输出字符内容
  
  int a,b,c;
  
  scanf("%d%d",&a,&b);
  
  c=a+b;
  
  printf("%d+%d=%d\n",a,b,c);
  
   输入:4 5
  
   输出:4+5=9
  
   “\n”表示回车
  
   直接写printf("%d+%d=%d\n",a,b,a+b)也行
  
  字符串(字符数组)输入输出
  
  两者均可直接cin、cout。
  
  对于字符数组,还可:(此法无法读入string)
  
  char c[50];
  
  scanf("%s",&c);
  
  printf("%s",c);
  
  使用以上方法输入时,遇到空格会结束。
  
  含空格的字符串(字符数组)输入输出
  
  对于字符数组:
  
  scanf("%[^\n]",&c);
  
  表示遇到回车才算读入结束
  
  还可:
  
  cin.get(c,50);
  
  后一个参数表示接受读入的位数,若参数为50,实际最多可接收49个字符,若输入长度不够,毫无影响。
  
  (这个参数可以超过字符数组的长度!)
  
  此外,cin.getline()与cin.get功能、参数一样。
  
  对于字符串:(需要头文件)
  
  #include <string>
  
  ...
  
  getline(cin,s);
  
  6.字符串(字符数组)处理函数(重点)
  
  以下所有有关位置的参数,事先明确,无论是字符数组还是字符串,首字符索引都为0。
  
  获取长度
  
  对于字符串s有s.size(),对于字符数组c,有strlen(c)。
  
  比较
  
  比较规则:自左向右逐个字符比较,直到区分或者某字符串(数组)结束,此时认为短的那个字符串(数组)小。
  
  对于字符数组:
  
  strcmp(c1,c2);
  
  strncmp(c1,c2,n);
  
  后一个表示比较两个字符数组的前n位。
  
  若c1==c2,则返回零;若c1<c2,则返回负数;若c1>c2,则返回正数。
  
  对于字符串,直接>、<、==,也可以:
  
  str1.compare(str2);
  
  str1.compare(pos1,len1,str2,pos2,len2);
  
  连接
  
  对于string,可以直接使用加号连接,如:
  
  string s="a";
  
  s+='b';
  
  s+="cd";
  
  也可以:
  
  str1.append(str2);
  
  str1.append(str2,pos,len);
  
  前者相当于s1+=s2;
  
  后者也是在s1的末尾加,加s2的第pos位开始的连续len个字符。
  
  对于字符数组:
  
  strcat(c1,c2);
  
  strncat(c1,c2,n);
  
  将c2加到c1中,后一个是将c2的前n个字符加到c1中。
  
  查找
  
  对于字符数组:
  
  strchr(c,char);
  
  strstr(c,c2);
  
  前者:找到字符char在字符数组c中第一次出现的位置,并返回包括该位置字符及其之后的c的子数组。
  
  后者:与前者相似,找的是字符数组c2。
  
  若没找到,两者无输出(且在此之后所有输出语句好像都失效了)。
  
  对于字符串:(后者表示从后往前找)
  
  str1.find(str2);
  
  str1.rfind(str2);
  
  返回一个整数,表示str2在str1中第一次出现的位置,若没有返回-1。
  
  清除
  
  对string:
  
  s.clear(www.michenggw.com);//全部清除
  
  s.erase(pos,len);
  
  插入
  
  对string:
  
  str1.insert(pos1,str2);
  
  str1.insert(pos1,str2,pos2,len2);
  
  str1.insert(pos1,num,char);
  
   numchar是插入次数,char是要插入的字符。 
  
  提取
  
  对String:
  
  str2 = str1.substr(pos);
  
  str2 = str1.substr(pos,www.dasheng178.com/ len);
  
  前者:将str1从第pos位及之后的所有字符赋值给str2。
  
  后者:将str1从第pos位开始连续len个字符赋值给str2。
  
  替换
  
  对字符数组:
  
  strcpy(str1,str2);
  
  strncpy(str1,str2,n);
  
   前者相当于str1=str2;
  
  后者指把str2的前n位替换掉str1的前n位。
  
  对于字符串:
  
  str1.replace(pos1,www.mcyllpt.com/ len1,str2);
  
  str1.replace(pos1,len1,str2,pos2,len2);
  
  前者:把str1从pos1开始的连续len1位替换成str2。
  
  后者:多出的两个参数指定了str2参与替换的部分。
  
  字符串与字符数组相互转换
  
  字符数组可直接赋值给字符串。
  
  字符串s转字符数组a:
  
  strcpy(a,s.c_str());
  
  字符(串)数组与数字相互转换
  
  字符数组转数字:
  
  char a[]="123.456";
  
  int t;
  
  double d;
  
  sscanf(a,"%d",&t);
  
  sscanf(a,"%lf",&d);
  
  不仅可以转成整数,也可以识别小数点,直接转成实数。
  
  数字转字符数组:
  
  char a[www.hengy178.com];
  
  int t=123;
  
  double d=12.34;
  
  sprintf(a,"%d",t);
  
  sprintf(a,"%lf",d);
  
  字符串转数字:
  
  #include <sstream>
  
  ...
  
  string str = "123.45";
  
  double d;
  
  stringstream ss;
  
  ss << str;
  
  ss >> d;
  
  数字a转字符串str:(同样支持整数和实数)
  
  #include <sstream>
  
  ...
  
  double a=12.34;
  
  string str;
  
  stringstream ss;
  
  ss << a;
  
  ss >> str;
  
  PS:stringstream在数据量大的时候太慢,建议使用字符数组类型的转换。
  
  --------------------

C++的一些小操作、常用库及函数(持续更新)的更多相关文章

  1. STL 一些常用的STL函数(持续更新

    先说一下  一边要用到算法的东西一般要加#include<algorithm>头文件 一.栈和队列 1 栈 :一种线性表 特点  后进先出 头文件  #include<stack&g ...

  2. php 常用的好函数(持续更新)

    parse_url parse_url $url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/&qu ...

  3. iOS:开发常用GitHub开源项目(持续更新)

    IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...

  4. Android 常用开源库总结(持续更新)

    前言 收集了一些比较常见的开源库,特此记录(已收录350+).另外,本文将持续更新,大家有关于Android 优秀的开源库,也可以在下面留言. 一 .基本控件 TextView HTextView 一 ...

  5. 资源| 学习视频库-永久有效,持续更新!附赠java面试汇总

    每天进步一丢丢,连接梦与想 我们总是羡慕他人的光芒,却忘记自己也会发光 声明 资源来自于网络,小编只是资源的搬运工,若有侵权,联系小编即删. 期待已久的学习视频库来啦! 经过小编多日整理,整理了1.5 ...

  6. PHP的常用函数 持续更新

    PHP的常用函数 前言: 由于害怕遗忘,故在此记录下常用的php函数,以便复习 1 define函数 作用:定义常量 用法 <?php define('a',100); ?> 2 intv ...

  7. Android常用开源库集合【持续更新】

    1.FastJson  阿里巴巴工程师做的一个方便的JSON转换库 2.ButterKnife 只要作用能代替代码中大量的findviewbyid语句的使用,使用@injectview注入方式 3.v ...

  8. C语音常用库和函数

    #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 # ...

  9. sqlserver常用知识点备忘录(持续更新)

    背景 一个项目的开发,离不开数据库的相关操作,表/视图设计,存储过程,触发器等等数据库对象的操作是非常频繁的.有时候,我们会查找系统中类似的代码,然后复制/粘贴进行再进行相应的修改.本文的目的在于归纳 ...

随机推荐

  1. node 写api几个简单的问题

    最近出了一直在做无聊的管理后台,还抽空做了我公司的计费终端,前端vue,后端node,代码层面没啥太多的东西.由于自己node版本是8.0.0,node自身是不支持import和export的,要想基 ...

  2. 基于设备树的led驱动程序

    #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include ...

  3. 怎么用Python Flask模板jinja2在网页上打印显示16进制数?

    问题:Python列表(或者字典等)数据本身是10进制,现在需要以16进制输出显示在网页上 解决: Python Flask框架中 模板jinja2的If 表达式和过滤器 假设我有一个字典index, ...

  4. 常用 css html 样式

    CSS基础必学列表 CSS width宽度 CSS height高度 CSS border边框 CSS background背景 CSS sprites背景拼合 CSS float浮动 CSS mar ...

  5. python2.X与python3.X爬虫常用的模块变化对应

    python2 python3 import urllib2 import urllib.request,urllib.error import urllib.request,urllib.error ...

  6. Python爬虫之JS异步加载

    一.判断异步加载方式(常用的JS库) 1. jQuery(70%) # 搜索 jquery 茅塞顿开 <script src="http://ajax.googleapis.com/a ...

  7. Android开发——Android系统启动以及APK安装、启动过程

    0. 前言   从Android手机打开开关,到我们可以使用其中的app时,这个启动过程到底是怎么样的? 1.  系统上电 当给Android系统上电,在电源接通的瞬间,CPU内的寄存器和各引脚均会被 ...

  8. VI的配置

    vi下设置tab键为4个空格 在每个用户的主目录下,都有一个 vi 的配置文件".vimrc"或".exrc",没有的可以新建一个.用户可以编辑它,使这些设置在 ...

  9. 破解PHPStrom 10 and Pycharm

    注册时选择 License server http://idea.lanyus.com/ 然后点击OK Pycharm -- License server http://idea.lanyus.com ...

  10. (原)MongoDB在系统中的使用

    序)Nosql并不是要取代原有的数据产品,而是为不同的应用场景提供更多的选择. 一)结构类型 传统数据库的领域在于结构化文档,对于非结构化文档和半结构化文档,它能处理,但是有一定的缺陷,那么什么又是结 ...