2016.12.3 - 2016.12.4
概览部分
完成一个程序的设计工作分三步
- 分析 取得对问题的一个清晰2的理解
- 设计 标识出在一个解决方案中所涉及的关键概念
- 编程 用一个程序表达这个解决方案
写出一个好程序,最关键的就是去设计这些类
如何用c++写出优秀的程序
- 了解写程序的目的
- 实践,模仿优秀的作品
第三章
一些关于string操作 p68
string s;
//裁剪字符串
s.substr(a,b); // a:字符串里一个下标的位置; b:所需字符串长度
//替换字符串
s.replace(a,b,"string");// a:字符串里一个下标的位置; b:所需字符串长度; string: 替换成的内容
//打印c风格的字符串
printf("%s\n", s.c_str());
//读取一行
getline(cin,s);
//添加结尾符
s+="\n";
一些关于vector的事项 p71
vector<TYPE> name(100); // 100个元素的向量
vector<TYPE> name[100]; //100个空间量的向量
vector不支持超出范围的监测
int i = vector<TYPE> name[101];//随机赋值给i
vector 顺序表(数组)另: vector与list区别
迭代器类型
任何特定的的迭代器也都是某个类型的对象,但是可能差异巨大, 而且都是为某项特定工作专门量身打造的
- victor的迭代器为常规指针
- list的迭代器为指向链接的指针
ps: 经典迭代器代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> ivec;
ivec.push_back(1);
ivec.push_back(2);
ivec.push_back(3);
ivec.push_back(4);
for(vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter){
cout << *iter << endl;
}
}
关于标准库的忠告
- 不要像重新发明车轮那样企图做每件事,去使用库
- 不要相信奇迹,要理解你的库能做什么,它们,它们如何做,需要付出多大代价
- 当你遇到一个选择时,优先选择标准库
- 不要认为标准库对于任何事情都是最理想的
- 切记#include你所用到的功能的头文件
- 标准库的功能定义在名字空间std之中
- 请用string, 而不是char*
- 如果怀疑, 就用一个检查区间范围的向量(例如Vec)
- vector[T],list[T]和map