C++ primer 笔记二

第3章 标准库类型

1.任何存储string的size操作结果的变量类型必须为string::size_type类型。

2.同理存储vector的size值应使用类似vector<string>::size_type的类型变量

3.使用for(vector<int>::size_type ix=0; ix != ivec.size(); ++ix)的风格 a.使用!=的效率更高 b.在循环过程中可能ivec的元素个数会变化,所以每次比较ivec.size()是一种更合理的做法 以。 c.C++有很多小函数都是内联函数,所以多次调用ivec.size()产生的效率代价是很小的

4.多认识了一个const迭代器:vector<int>::const_iterator,与vector<int>::iterator极像,只是不能对得到的指针指向的对象进行修改。

5.两个迭代器相减(iter1-iter2)得到两者的距离

6.操作符::用于在其左操作数的作用域内找到其右操作数的名字。

7.size_t在cstddef头文件中定义的机器相关的无符号整型,该类型足以保存最大数组的长度。

第4章 数组和指针

8.未初始化的指针可能不为0,所以要尽量在声明的地方初始化,或在将其初始化为NULL即0,方便使用前判断是否已经初始化。

9.int &ri=ival, &ri2 = ival2;   ri = r2; 结果是什么?将ival2的值赋给ival,引用未变化。

10.在处理C风格字符串时(即char数组)永远要记得字符串结束符为null(即‘\0‘),否则类似strlen()的结果不是确定的而且必将是错误的结果。包括strncpy等,但strlen的结果不包含结束符

11.使用C++标准库类型string则不会存在C风格字符串的问题,同时string的效率比C风格的也高。

12.c_str()返回的数组并不一直保持有效性。当string变量的内存分配不变化时,c_str()是一直有效的,但是如果在后面的操作中string变量的长度发生变化或其他一些情况发生,因内存的重新分配,则已经保存的string.c_str()指针就可能变化,必须重新调用c_str()返回新的地址.

时间: 2024-08-08 15:01:32

C++ primer 笔记二的相关文章

C++Primer笔记二

真是一本好书,就这么点,就感觉学到很多了,当然也是我水平太差. 用shell或者bash的时候有一个文件重定向,就是每次程序运行的时候,我们都需要手动输入内容,然后程序输出内容,这是可以用文件来代替.比如, ./inpu <txt1.txt >txt2.txt    就是把inpu执行一遍,用txt1.txt的内容当初输入的内容,然后把输出内容写入到txt2.txt中.txt2.txt会重新写入. 联想一下,cat是打开一个文件的意思,考虑加上参数. cat a.txt >b.txt  

C++ Primer笔记8_动态内存_智能指针

1.动态内存 C++中,动态内存管理是通过一对运算符完成的:new和delete.C语言中通过malloc与free函数来实现先动态内存的分配与释放.C++中new与delete的实现其实会调用malloc与free. new分配: 分配变量空间: int *a = new int; // 不初始化 int *b = new int(10); //初始化为10 string *str = new string(10, ); 分配数组空间: int *arr = new int[10];//分配的

老男孩培训视频听课笔记二(在51cto上听的)

centos 5.8 文本安装过程    引导采用默认,引导不用设置密码    网络配置,根据实际情况配置,网关是网络出口的地址,一般为wlan出口的路由器的地址或者是代理服务器的内网IP    DNS简单解说图:      主机名--时区--root密码    选择自定义系统安装包--最小化(安全方便工作,建议安装以下的组)      ·base-- 基础      ·editors-编辑器      ·development librarays--开发库      ·development

《卓有成效的程序员》----读书笔记二

六大方面对比Launchy和TypeAndRun(TAR) 对于快速启动工具,很多人都有自己的偏好,多次听到朋友介绍Launchy的好,虽然自己一直在使用着TAR,还是克制不住对于好软件的渴求,下载Launchy进行试用.很多软件都是有一个试用期的,也许新的软件确实不错,但是你习惯了以前使用的那个软件.今天就比较客观的将Launchy和TAR进行一下对比,从界面.上手速度到功能.自定义,以及软件的稳定性.占用资源进行详细的比较. [界面美观]Launchy:毫无疑问这是它的强项.1.0正式版自带

Caliburn.Micro学习笔记(二)----Actions

Caliburn.Micro学习笔记(二)----Actions 上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 我们还是从做例子开始 demo的源码下载在文章的最后 例子1.无参数方法调用 点击button把textBox输入的文本弹出来 如果textbox里没有文本button不可点,看一下效果图 看一下前台代码 <Stac

《逻辑思维简易入门》(第2版) 阅读笔记二

<逻辑思维简易入门>(第2版) 阅读笔记二 本周阅读的是<逻辑思维简易入门>的第三章,也就是说,本书的第一部分就已经读完了. 第三章.信念的优点 信念和负信念是人们在接受一个事物时一种心理态度,延伸来说也就是对事物的认知态度.因为我们在研究 逻辑思维的时候,都有一个前提:“以正常情况以及说话者真诚”,所以有人如果对于一件事物不做回应,我们可以认为这是一种既不相信,也不怀疑的的态度. 信念的优缺点有很多,在书中主要介绍了下面几种: 1.准确性 好的信念实在准确的表达事实,同样真的信念

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Emacs 笔记二

Emacs 笔记二 Table of Contents 1. 前言 2. emacs基本操作(常用快捷键) 3. emacs模式讲解 4. emacs缓冲区 5. org mode 5.1. 列表 5.2. 快键键 5.3. 内嵌元素(插入代码什么的) 5.4. 表格 1 前言 最近在学着写博客,发现MarkDown真乃神器,于是去找了很多markdown的工具,发现作业部落 最好的那个,而无意间又发现了org-mode火爆到极致 非常被人推崇,其实作业部落 已经是能很完美的满足我的需求了,但是

《Programming in Lua 3》读书笔记(二十二)

日期:2014.8.6 PartⅣ The C API 26 Extending Your Application 使用Lua很重要的一点是用来做配置语言.配合主语言做一些功能的配置. 26.1 The Basics 有的时候程序需要配置一些功能信息,很多时候可能有许多别的方法比用lua做配置要更简单:如使用环境变量或者读取文件,读取文件涉及到文件的解析.如果使用Lua进行配置的话,相当于用lua文件替代了要读取的如csv.txt文件等. 使用Lua进行配置的时候,就需要使用Lua API去控制