关于引用
引用作函数形参时,不能使用其它方法的返回值作该方法的参数。因为返回值不能被引用。
比如:
有声明:
A getA() const;
B getB(A& a);
那么:
getB(getA()); 则可能会出错。
说可能出错原因在于编译器,在win32下编译就能通过,并且程序能正常执行。
在cygwin下编译就会出现 找不到目标函数,不存在A 到 A&的转换这样的错误。
关于typeid
在c++中,
typeid 用于获知一个变量的具体类型。
注意:
typeid 是操作符,不是函数!
关于STL
命名空间
所有函数封装在命名空间std中
stl头文件不使用.h 扩展
容器类
- deque
- list
- map
- queue
- set
- stack
- vector
迭代器
常用函数
- sort()
- copy()
- find()
- replace()
- ostream_iterator(ostream, string)
- front_inserter()
- back_inserter()
- inserter()
- advance()
- distance()
- for_each()
- find_if()
- accumulate()
- random_shuffle() 发生器类
- count_if()
- bind1st()
- bind2nd()
- not1()
- not2()
用法
copy(v.begin(), v.end(),
ostream_iterator<int>(cout, "\t"));
参考:
关于new delete new[] delete[]
当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operatordelete来释放内存
关于指针对[]的重载
MoreEffectiveC++ Item M3提到指针下标的问题。
文中说C++对指针下标的处理仅仅是简单的加类型大小,若具体基类数组中存在具体派生类对象,那么结果会出错。
表示很怀疑,是真是假有待验证。