第1章 C++和STL速成

1.1 C++基础知识

1.1.1 小程序“hello world”

注释、预处理指令、main()函数、输入/输出流

1.注释:单行注释使用 //  多行注释/* ............ */

2.预处理命令:以#字符开头,如:#include<iostream>,作用:提取<iostream>头文件中的所有内容并提供给当前文件。头文件作用:声明在其他地方定义的函数

注意:C中,被包含的文件通常以.h结尾,如<stdio.h>.C++中,头文件省略了这一后缀,如<iostream>.但C中的标准头文件在C++中仍然存在,只是换了名称。如:<stdio.h>变成了<cstdio>

表1-1:常用的预处理命令

预处理命令 功能 常见用法
#include[file] 将指定的文件插入到代码中指令所在的位置 几乎总是用来包含头文件,使代码可以使用在其他位置定义的功能
#define[key][value] 每个指定的key都被替换为指定的值 在C中,常用来定义数值或宏。C++提供了更好的常数和宏定义机制,而宏的使用具有风险,因此在C++中使用它们要谨慎

#ifdef[key]

#endif

#ifndef[key]

#endif

ifdef("if defined")块或者ifndef("if not define")快中的代码有条件地包含或舍弃,这取决于是否使用#define定义了指定的key 经常用来防止循环包含。每个被包含的文件都以#ifndef开头,以确定没有定义一个值,然后定义该值。被包含的文件以#endif结束,这样这个头文件就不会被多次包含
#pragma[xyz] xyz因编译器而异。如果在预处理期间执行到这一指令,通常会显示一条警告或错误信息
http://www.360doc.com/content/10/0902/09/2795334_50552950.shtml

3.main():程序入口,返回int值指示程序最终的执行状态,可没有参数或有两个参数。如 int main(int argc, char* argv[]),其中argc:参数给程序的参数数目,argv:包含这些参数。注:argv[0]可能是程序的名称,但不应依赖它,应从来不使用它。

4.输入/输出流:std::cin   std::cout

1.1.2 名称空间:用来处理不同代码段之间的名称冲突问题。使用using指令避免预先指明名称空间,也可以使用using指令来引用名称空间内的指定项using std::cout。警告:不能在头文件中使用using指令或者using声明,否则每个人都会包含你的头文件。

1.1.3 变量

时间: 2024-10-06 09:35:58

第1章 C++和STL速成的相关文章

C++ STL 基础及应用(6) 容器

读者可能有这样的经历,自己编写了动态数组类.链表类.集合类和映射类等程序,然后小心地维护着.其实 STL 提供了专家级的几乎我们所需要的各种容器,功能更好,效率更高,复用性更强,所以开发应用系统应该首选 STL 容器类,摒弃自己的容器类,尽管它可能花费了你很多的开发时间. 本章将介绍 STL 中的通用容器 包括 vector.deque.list.queue和stack.priority_queue.bitset.set和multiset.map和multimap等等. 概述 容器分类 (1)序

【STL源码学习】STL算法学习之三

第一章:前言 数量不多,用到的时候会很爽. 第二章:明细 STL算法中的又一个分类:分割:将已有元素按照既定规则分割成两部分.  is_partitioned 函数原型: template <class InputIterator, class UnaryPredicate> bool is_partitioned (InputIterator first, InputIterator last, UnaryPredicate pred); 函数作用: 如果序列被分为两部分,前一部分pred都

【STL源码学习】STL算法学习之一

第一章:引子 STL包含的算法头文件有三个:<algorithm><numeric><functional>,其中最大最常用的是<algorithm>,今天学习的是<algorithm>包含的算法中的第一部分:非修改顺序操作算法. 接下来学习的算法基于C++11标准,较老的IDE会支持不全面或者部分算法不支持. 第二章:原型解析 如分类名称体现的信息,本节的所有函数都不会修改序列,并且原理上都是顺序遍历迭代器实现的. all_of 函数原型: t

《泛型编程与stl》笔记

以下是STL六大组件(componments): adapters  配接器 用来修饰其他组件.包括iterator adapters.function adapters.container adapters三大类. allocators 配置器 用来分配空间.空间可来自于内存或磁盘--取决于配置器如何 实现.主要用来服务容器. algorithms 算法 如sort,bineary search,permutation.... containers 容器 就是数据结构,用来存放元素.如vect

第0章 目录

  C++STL开发技术导引 第一篇 预备知识  第1章 C++编程技术  第2章 C++模板技术  第3章 C++ I/O流技术   第二篇 C++STL泛化技术基础  第4章 C++STL泛型库概述  第5章 C++STL泛化技术分析   第三篇 C++STL容器技术  第6章 vector向量容器  第7章 deque双端队列容器  第8章 list双向链表容器  第9章 slist单向链表容器  第10章 bit_vector位向量容器  第11章 set集合容器  第12章 multi

Effective MySQL之SQL语句最优化——读书笔记之一

第一章,DBA5分钟速成 本章知识点如下: 寻找运行慢SQL的语句: show full processlist查看所有正在执行的进程及执行的语句耗时: 命令后面\G可以让命令按行显示(默认是按列). 手动用ad hoc方式执行该sql,大于10ms的查询通常会有问题(有可能是索引问题,也可能是结果集太大使得结果无意义). 对于低效的Delete和Update语句,可以通过将其改为Select大概判断其效率. 生成执行计划QEP(query excution plan),注意QEP结果不一定是真

恶意代码分析实战

恶意代码分析实战(最权威的恶意代码分析指南,理论实践分析并重,业内人手一册的宝典) [美]Michael Sikorski(迈克尔.斯科尔斯基), Andrew Honig(安德鲁.哈尼克)著   <恶意代码分析实战>是一本内容全面的恶意代码分析技术指南,其内容兼顾理论,重在实践,从不同方面为读者讲解恶意代码分析的实用技术方法. <恶意代码分析实战>分为21章,覆盖恶意代码行为.恶意代码静态分析方法.恶意代码动态分析方法.恶意代码对抗与反对抗方法等,并包含了 shellcode分析

2017.02.04,读书,2017第二本《把时间当作朋友》读书笔记

前言: 这是春节期间读完的一本书,也是今年的第二本,严格来说是大年初一那天看完的.春节,这个农业时代的传统,已经感到不适应时代(我)了.以公历来算,今年已经过去一个月了,农历却才刚开始,才进入的2017年节奏不得不打断一下.还好可以睡大觉. 以上是关于春节. 以下是关于这本书,依然是李笑来老师的,充满方法论的书.全文6657字,kindle版,花费大概8个小时,读起来一口气上五楼不费劲,推荐. ? 第0章 困境(程序员永远从0开始) 1 问题 最后期限没有完成的原因 没有按时开始执行任务 错误估

Effective MySQL之SQL语句最优化

推荐本SQL优化的书<Effective MySQL之SQL语句最优化>. 主要讲解:如何去分析SQL的性能.索引的原理.如何创建合适的索引.如何去分析线上系统的性能瓶颈. 另外还介绍了几个辅助工具: mysqldumpslow 来分析慢查询日志: Google开源的mysql-slow-query-log-parser 分析慢查询日志: 应用程序中使用MySQL Proxy来收集SQL语句.QEP.查询执行时间: 开源Maatkit检查数据库中的重复索引: Google的MySQL补丁,引入