小小的知识点C++版

关于引用

引用作函数形参时,不能使用其它方法的返回值作该方法的参数。因为返回值不能被引用。

比如:

有声明:

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"));

参考:

三十分钟掌握STL

关于new delete new[] delete[]

当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operatordelete来释放内存

关于指针对[]的重载

MoreEffectiveC++ Item M3提到指针下标的问题。
文中说C++对指针下标的处理仅仅是简单的加类型大小,若具体基类数组中存在具体派生类对象,那么结果会出错。
表示很怀疑,是真是假有待验证。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容