1 认识标准库
没有任何一个重要程序只用某种赤裸裸的程序设计语言写出的;首先总要开发出一组支持库,这也形成了进一步工作的基础。
2 第一个程序
#include<iostream> //指编译器包含位于iostream里的标准流I/O功能的声明
int main() //定义一个main()函数,该函数没有参数,也不做任何事情
{
std::cout<<"hello,world!\n"; //字符串文字量“hello,world!\n”将被写进标准输出流std::cout
}
3 标准库名字空间
为了明确使用的是标准库,又不必实时列出标准前缀,则可以采用标准库名字空间。
#include<string> //使标准字符串功能可以使用
using namespace std; //使所有std名字都可用,不必加前缀std::
string s="hello,world!\n"; //string就是std:string
4 输入/输出
(1)输出 库iostream为每种内部定义了相应的输出方式。
void f()
{
cout<<IO; //把字符I而后是字符O放入标准输出流里
}
void g()
{
int i=IO;
count <<i;
}
void h(int i)
{
cout<<"the value of i is";
cout<<i;
cout<<"\n";
}
字符常量的形式是单引号括起的一个字符,注意,字符常量被输出为一个字符,而不是一个数值。
void h2(int i)
{
count<<"teh value of i is"<<i<<"\n";//连续输出
}
(2)输入 标准库为输入提供了istream
5 字符串
标准库提供了一个string类型,作为前面所用的字符串的补充。
#include <iostream> #include <string> using namespace std; string s1 = "hello"; string s2 ="world"; void main( ) { cout<<"hello,world!\n"; string s3 =s1 +","+ s2 +"!\n"; cout<<s3; }
6 容器
以保存一批对象为主要用途的类通常被称为一个容器。
(1)向量-vector
内部数组具有固定的规模,如果我们选择了某个很大的规模,那么就会浪费存储;而如果选择一个过小的规模,数组又会溢出。Vector 类在 java 中可以实现自动增长的对象数组; vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库
(2)范围检查
提供一个异常处理器,如果我们未能捕获某些异常,他就会在标准的错误诊断输出流打印一个错误。
(3)表-list
List 是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一
(4)映射-map
7 算法
(1)迭代器的使用
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来
(2)迭代器类型
(3)迭代器和IO
(4)遍历和谓词
(5)使用成员函数的算法
(6)标准库算法
8 数学
(1)复数
(2)向量算术
(3)基本数值支持
9 标准库功能
标准库所提供的功能可以分类如下:
(1)基本运行支持(例如,存储分配和运行类型信息等)
(2)C标准库(做了极少的修改,以便尽可能能地减少其中违反类型系统的情况)
(3)字符串和IO流(包括国际化字符集合本地化)
(4)容器和使用容器的算法
(5)对数值计算的支持