学习版本:第五版。

本博文主要记录个人曾经并不知晓知识细节。

因为linux下的编译环境还未进行学习。所以实际代码测试将在今后完成。

红色:需确认。

蓝色:重点。

1)const对象设定为仅在文件内有效。个人认为:.h .cpp属于同文件的概念(未测试)。

2)constexpr:常量表达式标示符。使用此作为前/后缀时,表示此变量/函数为常量表达式。但,具体用途?以及为何需要这样的标示符?

3)但凡使用迭代器的循环,都不要向迭代器增加元素。因为增加元素可能导致容器重新分配内存,导致后续迭代器操作 可能 不按照逻辑执行。

4)迭代器循环中,可以使用删除(earse)操作。但需要注意迭代器执行情况。在可能情况下,尽量不对迭代器循环进行修改。

5)auto未c++ 11新添加内容。需要确定是否好用和代码可读性等等问题。

6)数组的初始化必须是常量表达式。例子:unsinged cnt = 42; string bad[cnt];  //错误,cnt不是常量表达式。

7)不允许对数组进行赋值或者copy。(应该是指对数组指针,而不是数组内容。)

8)在递增前的数据不需要时,尽量使用前置版本( ++i )。因为后置版本需要储存原数据(编译器通常不优化)。也适用于递减版本。

9)位运算不要在有符号数据中使用。容易产生结果不确定问题。

10)sizeof运算符三种情况:p是指针,array_p是数组。

  1,sizeof( p );   //指针大小。

  2,sizeof( *p );  //指针指向的对象大小。

  3,sizeof( array_p );    //数组所占用的内存大小。

  注意:数组是一个比较例外的情况。

11)const_cast可以在 const 和 非const之间进行转换。

12)在while条件部分生成的迭代器每次循环也会被注销(开始时也会创建)。

13)泛型算法不依赖容器(不会执行容器操作),但依赖迭代器操作。

14)使用泛型算法前,程序员需要保证 容器可以接受算法要求。例:容器大小(算法fill)。

15)需要进一步了解常函数特性。

C++ primer学习记录(个人猜想未测试版本)的更多相关文章

  1. FPGA学习记录 - Quartus II 未使用管脚设置为三态输入

    未使用管脚设置为三态输入 Assignments  -> Device 或双击器件

  2. 《java从入门到精通》学习记录

    目录 <Java从入门到精通>学习记录 3 基础的基础部分: 3 一. 常量与变量 3 1. 掌握: 3 (1) .常量与变量的声明方式: 3 (2) .变量的命名规则: 3 (3) .变 ...

  3. Java设计模式学习记录-状态模式

    前言 状态模式是一种行为模式,用于解决系统中复杂的对象状态转换以及各个状态下的封装等问题.状态模式是将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象的状态可以灵活多变.这样在客户端使 ...

  4. C++ Primer学习笔记(二)

    题外话:一工作起来就没有大段的时间学习了,如何充分利用碎片时间是个好问题. 接  C++ Primer学习笔记(一)   27.与 vector 类型相比,数组的显著缺陷在于:数组的长度是固定的,无法 ...

  5. 转 Python3 错误和异常/ Python学习之错误调试和测试

    ########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名> ...

  6. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  7. JavaScript学习记录一

    title: JavaScript学习记录一 toc: true date: 2018-09-11 18:26:52 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  8. Python全栈工程师系列学习之学习记录

    @ 目录 前言 Day 01 一.python的历史和种类 二.安装python解释器以及配置环境变量 三.变量.常量和注释 Day 02 Day 03 Day 04 Day 05 Day 06 一. ...

  9. git原理学习记录:从基本指令到背后原理,实现一个简单的git

    一开始我还担心 git 的原理会不会很难懂,但在阅读了官方文档后我发现其实并不难懂,似乎可以动手实现一个简单的 git,于是就有了下面这篇学习记录. 本文的叙述思路参照了官方文档Book的原理介绍部分 ...

随机推荐

  1. 使用log4net写自定义日志

    在使用log4net写Web服务器端日志的时候,通常需要一些自定义的参数,比如请求的url,method,以及用户名等等,而log4net中默认的Log接口只提供了很少的参数.    在网上找的其他的 ...

  2. 写一个Windows上的守护进程(7)捕获异常并生成dump

    写一个Windows上的守护进程(7)捕获异常并生成dump 谁都不能保证自己的代码不出bug.一旦出了bug,最好是崩溃掉,这样很快就能被发现,若是不崩溃,只是业务处理错了,就麻烦了,可能很长时间之 ...

  3. (转)创建和查看Javadoc文档

    原地址:http://jinnaxu-tju-edu-cn.iteye.com/blog/667177 Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代 ...

  4. gradle构建依赖

    本地依赖 gradle 作为构建工具,能够很方便的使用本地jar包,以下为使用的代码块. dependencies { //单文件依赖 compile files('libs/android-supp ...

  5. java设计模式之Proxy(代理模式)

    java设计模式之Proxy(代理模式) 2008-03-25 20:30 227人阅读 评论(0) 收藏 举报 设计模式javaauthorizationpermissionsstringclass ...

  6. 用Python设计第一个游戏 - 零基础入门学习Python002

    用Python设计第一个游戏 让编程改变世界 Change the world by program 有些鱼油可能会说,哇,小甲鱼你开玩笑呐!这这这这就上游戏啦?你不打算给我们讲讲变量,分支,循环,条 ...

  7. Find them, Catch them(POJ 1703 关系并查集)

    Find them, Catch them Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38668   Accepted: ...

  8. Socket也有专门的Unicode版本

    https://www.chilkatsoft.com/refdoc/wcppCkSocketWRef.html https://www.chilkatsoft.com/refdoc/vcCkSock ...

  9. awk 处理

    find . -type f | awk '{print $NF}' | grep pdf$ |grep -v preview | while read A; do ls -ltr $A| awk ' ...

  10. Bash Shell 快捷键的学习使用

    原文地址: http://dbanotes.net/tech-memo/shell_shortcut.html 这篇 Bash Shell Shortcuts 的快捷键总结的非常好.值得学习.下面内容 ...