【读书笔记】C++Primer---第三章
1.由于为了与C语言兼容,字符串字面值与标准库string类型不是同一种类型;
2.以下代码中,cin有几点需要注意:a.读取并忽略开头所有的空白字符(如空格、换行符、制表符);b.读取字符直至再次遇到空白字符,读取终止
int main()
{
string s;
cin >> s;
return 0;
}
3.string的IO操作还有一个就是getline,终止条件就是遇到换行符,即使是第一个字符是换行符,则表明stirng读取到的是空字符
int main()
{
string line;
while(getline(cin, line))
{
cout << line << endl;
}
return 0;
}
4.任何存储string的size操作结果的变量必须为string::size_type类型,不要把size的返回值赋值给int变量,有string::size_type类型的主要原因是使string的size不受机器的影响;
5.一个string最多能存多少个字节的字符,直接看它的size类型的最大值;
6.在使用索引操作string对象的时候,建议使用string::size_type类型;
7.对字符的操作函数,通常都是存放在cctype头文件中,以下列举部分函数:
| isalnum(c) | 如果c是字母或数字,则为true |
| isalpha(c) | 如果c是字母,则为true |
| iscntrl(c) | 如果c是控制字符,则为true |
| isdigit(c) | 如果c是数字,则为true |
| isgraph(c) | 如果c不是空格,但可打印,则为true |
| islower(c) | 如果c是小写字母,则为true |
| isprint(c) | 如果c是可打印的字符,则为true |
| ispunct(c) | 如果c是标点符号,则为true |
| isspace(c) | 如果c是空白字符,则为true |
| isupper(c) | 如果c是大写字母,则为true |
| isxdigit(c) | 如果c是十六进制数,则为true |
| tolower(c) | 如果c是大写字母,则返回其小写字母形式,否则直接返回c |
| toupper(c) | 如果c是小写字母,则返回其大写字母形式,否则直接返回c |
8.C++标准库还包含了C标准库,如在C语言中ctype.h标准库函数,在C++中则去掉.h,在前面加上c,表明该头文件来自C语言标准库,则是#include <cctype>,并且属于std命名空间;
9.const_iterator该类型智能用于读取容器中的元素,但是不能修改其值,如vector<string>::const_iterator iter = test.begin();
10.两个迭代器变量相减,iter1 - iter2,得到的是类型为difference_type的signed类型的值;
11.bitset对象主要用于对二进制位的操作,bitset<16> bitvec1;指定了该对象有16位,全部位都是0;
【读书笔记】C++Primer---第三章的更多相关文章
- 精读《C++ primer》学习笔记(第一至三章)
第一章: 重要知识点: 类型:一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算:所以说类定义,实际上就是定义了一种数据类型: >>和<<运算符返回其左侧的运算 ...
- Unity Shader入门精要读书笔记(一)序章
本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...
- The Art of Multiprocessor Programming读书笔记 (更新至第3章)
这份笔记是我2013年下半年以来读“The Art of Multiprocessor Programming”这本书的读书笔记.目前有关共享内存并发同步相关的书籍并不多,但是学术文献却不少,跨越的时 ...
- Chrome插件安利!可以一键导出微信读书笔记|支持Markdown等三种格式
众所周知,微信读书App 是一款非常优秀的阅读类App ,周围也有不少人在用.虽然工作比较忙.但是也没少在上面看书做笔记. 美中不足的是,目前微信读书虽然支持笔记导出,但是提供的是将笔记复制到剪切板, ...
- 读书笔记_Effective_C++_条款三十:了解inline的里里外外
学过基本程序课的同学都知道,inline是内联的关键字,它可以建议编译器将函数的每一个调用都用函数本体替换.这是一种以空间换时间的做法.把每一次调用都用本体替换,无疑会使代码膨胀,但可以节省函数调用的 ...
- [读书笔记]算法(Sedgewick著)·第二章.初级排序算法
本章开始学习排序算法 1.初级排序算法 先从选择排序和插入排序这两个简单的算法开始学习排序算法.选择排序就是依次找到当前数组中最小的元素,将其和第一个元素交换位置,直到整个数组有序. public s ...
- C++primer第三章标准库类型
除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...
- 读书笔记-HBase in Action-第三部分应用-(2)GIS系统
本章介绍用HBase存储.高效查询地理位置信息. Geohash空间索引 考虑LBS应用中常见的两个问题:1)查找离某地近期的k个地点.2)查找某区域内地点. 假设要用HBase实现高效查找,首先要考 ...
- 读书笔记 - javascript 高级程序设计 - 第一章 简介
第一章 简介 诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262 一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...
随机推荐
- 学习笔记6-Android查看应用输出的错误信息 如何部署应用到真实手机 发布软件
查看应用输出的错误信息 1. 通过LogCat窗口查看信息 右上角图标可以筛选不同级别的信息(比如info等). 右上角的+可以进行信息筛选 把应用部署到真实手机 1. 要把手机的 ...
- Android进阶(一)几种网络请求方式详解
Ref:http://blog.csdn.net/zuolongsnail/article/details/6373051 Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面 ...
- Dom4j修改xml文档引入
前面介绍了如何解析xnl文档的内容,这里对修改xml展开讨论. 一.首先看一下,写出内容到xml文档的主要代码: XMLWriter writer = new XMLWriter(OutputStre ...
- 2015年CSDN博客排名第一名,何方神圣?
2015年CSDN博客排名第一名,何方神圣? 一.引子: 话说博主phphot,雄霸天下好多年. 俱往矣, 落花流水春去也. 斗转星移,江山易主. 详细可以参见下文: CSDN博客排名第一名,何许人也 ...
- Linux信号实践(4) --可靠信号
Sigaction #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct si ...
- 关于Debug和Release之本质区别的讨论
一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化 ...
- 04_查看Android内存使用情况
创建项目 Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xm ...
- JAVA之旅(十一)——RuntimeException,异常的总结,Package,jar包,多线程概述
JAVA之旅(十一)--RuntimeException,异常的总结,Package,jar包,多程序概述 继续JAVA之旅 一.RuntimeException 在Exception种有一个特殊的子 ...
- 01_JNI是什么,为什么使用,怎么用JNI,Cygwin环境变量配置,NDK案例(使用Java调用C代码),javah命令使用
1 什么是JNI JNI Java本地开发接口 JNI是一个协议,这个协议用来沟通java代码和外部的本地代码(C/C++) 通过这个协议,java代码就可以调用外部的C/C++代码,外部的C/C++ ...
- 【Qt编程】基于Qt的词典开发系列<六>--界面美化设计
本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口 ...