2016.9.26 动态数组模板
- 一般情况下把template的定义和实现都写在.h文件里面;
- 先引入标准库,再引入自己的库
- 将普通类改编成模板类
– 将类定义改编为模板类定义
– 将函数定义改编成函数定义
2016.9.26 STL(Standard Template Library)标准模板库
- vector
– 动态数组
– 头文件vector
– 命名空间std
– vector vt(n_elem)
– n_elem可以是常量也可以是变量 array(C++11)
– 使用栈内存
– 长度固定
– 头文件 array
– array arr
– n_elem必须是常量list
– 动态数组
– 链表实现
– 头文件list
– 命名空间std
– 构造函数
list<int> c0; //空链表
list<int> c1(3); //建一个含三个默认值是0的元素的链表
list<int> c2(5,2); //建一个含五个元素的链表,值都是2
list<int> c4(c2); //建一个c2的copy链表
list<int> c5(c1.begin(),c1.end()); //c5含c1一个区域的元素[_First, _Last)
– 成员函数
2016.9.26 文件操作
- 读文件
– 头文件fstream
- 创建ifstream对象管理输入流
- 将该对象与特定的文件关联起来
- 使用cin的方式使用该对象
//1、声明ifstream对象,将它与文件关联起来
ifstream fin;
fin.open("points.txt");
//1、或者
ifstream fin("points.txt");
//2、以使用cin的方式使用该对象
char ch;
fin >> ch;//read a character from points.txt file
char buf[80];
fin >> buf;//read a word from points.txt file
fin.getline(buf,80);//read a line from points.txt file
string line
getline(fin,line);//read a line from points.txt file
- 流状态
– 较新的C++提供了一种检查文件是否被打开的函数is_open
– 打开一组文件:创建一个输入流对象并把它们依次关联到多个文件,更节省计算机资源
ifstream fin;//create stream using default construct
fin.open("P1.txt"); //associate stream with P1.txt file
........//do stuff
fin.close();//terminate associate with P1.txt file
fin.clear();//reset fin
fin.open("P2.txt");
........
fin.close();
fin.clear();
fin.open("P3.txt");
........
fin.close();
fin.clear();