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---第三章的更多相关文章

  1. 精读《C++ primer》学习笔记(第一至三章)

    第一章: 重要知识点: 类型:一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算:所以说类定义,实际上就是定义了一种数据类型: >>和<<运算符返回其左侧的运算 ...

  2. Unity Shader入门精要读书笔记(一)序章

    本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...

  3. The Art of Multiprocessor Programming读书笔记 (更新至第3章)

    这份笔记是我2013年下半年以来读“The Art of Multiprocessor Programming”这本书的读书笔记.目前有关共享内存并发同步相关的书籍并不多,但是学术文献却不少,跨越的时 ...

  4. Chrome插件安利!可以一键导出微信读书笔记|支持Markdown等三种格式

    众所周知,微信读书App 是一款非常优秀的阅读类App ,周围也有不少人在用.虽然工作比较忙.但是也没少在上面看书做笔记. 美中不足的是,目前微信读书虽然支持笔记导出,但是提供的是将笔记复制到剪切板, ...

  5. 读书笔记_Effective_C++_条款三十:了解inline的里里外外

    学过基本程序课的同学都知道,inline是内联的关键字,它可以建议编译器将函数的每一个调用都用函数本体替换.这是一种以空间换时间的做法.把每一次调用都用本体替换,无疑会使代码膨胀,但可以节省函数调用的 ...

  6. [读书笔记]算法(Sedgewick著)·第二章.初级排序算法

    本章开始学习排序算法 1.初级排序算法 先从选择排序和插入排序这两个简单的算法开始学习排序算法.选择排序就是依次找到当前数组中最小的元素,将其和第一个元素交换位置,直到整个数组有序. public s ...

  7. C++primer第三章标准库类型

    除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...

  8. 读书笔记-HBase in Action-第三部分应用-(2)GIS系统

    本章介绍用HBase存储.高效查询地理位置信息. Geohash空间索引 考虑LBS应用中常见的两个问题:1)查找离某地近期的k个地点.2)查找某区域内地点. 假设要用HBase实现高效查找,首先要考 ...

  9. 读书笔记 - javascript 高级程序设计 - 第一章 简介

      第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...

随机推荐

  1. matlab中 mcc、mbuild和mex命令详解

    先简单的说说mcc.mbuild和mex到底怎么回事: mcc将M文件转换成C/C++文件和相应的MEX包裹文件(需要Matlab编辑器),但在特定条件下可以自动调用mbuild或者mex mex将C ...

  2. 如何通过rsync+sersync 实现同步备份

    3.rsync+sersync更快更节约资源实现web数据同步4.unison+inotify实现web数据双向同步 一:为什么要实现同步备份 服务器上有些重要文件或数据时,可以把他们多备份一份到其他 ...

  3. Gradle 笔记——Java构建入门

    Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代 ...

  4. 谈谈Ext JS的组件——布局的使用方法

    概述 在Ext JS中,包含两类布局:组件类布局和容器类布局.由于有些组件是有不同的组件组合而成的,如字段就由标题和输入框构成,他们之间也是存在布局关系的,而这就需要组件类布局来处理组件内自己特有的布 ...

  5. Python学习笔记 - function调用和定义

    调用函数: #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 函数调用 >>> abs(100) 100 >>> a ...

  6. Android进程通信之一:两种序列化方式

    2月下旬辞职了,去海南度假到现在,领略了一把三亚风情也算任性和 然而这样任性带来的后果就是..不行了我必须吐槽一句.. 没毕业的找工作就这么难嘛!投了57家一家面试机会都没有,好歹给个面试机会啊!!本 ...

  7. 【一天一道LeetCode】#41. First Missing Positive

    一天一道LeetCode系列 (一)题目 Given an unsorted integer array, find the first missing positive integer. For e ...

  8. VS2010中NET4项目中使用LOG4NET办法

    两年以前项目中是用的log4net.dll是net2.0环境下面的,最近在官网http://logging.apache.org/log4net/download_log4net.cgi找到了net4 ...

  9. python屏幕的交互(读取输出信息)input,raw_input的区别

    >>> input("your name?") your name?sam Traceback (most recent call last):   File & ...

  10. 集群通信组件tribes之通道拦截器

    拦截器应该可以说是一个很经典的设计模式,它有点类似于过滤器,当某信息从一个地方流向目的地的过程中,可能需要统一对信息进行处理,如果考虑到系统的可扩展性和灵活性通常就会使用拦截器模式,它就像一个个关卡被 ...