码迷,mamicode.com
首页 > 其他好文 > 详细

20140814 explicit

时间:2014-08-15 12:13:48      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:color   使用   io   strong   数据   2014   cti   时间   

1、explicit

explicit   只对构造函数起作用,用来抑制隐式转换

如:  
  class   A  

{  
     A(int   a);  
}; 


int   Function(A   a);  
当调用   Function(2)   的时候,2   会隐式转换为   A   类型。这种情况常常不是程序员想要的结果,所以,要避免之,就可以这样写:  
class   A

{  
    explicit   A(int   a);  
};  
int   Function(A   a);  
这样,当调用   Function(2)   的时候,编译器会给出错误信息(除非   Function   有个以   int   为参数的重载形式),这就避免了在程序员毫不知情的情况下出现错误。
总结:explicit   只对构造函数起作用,用来抑制隐式转换。

2、序列

  序列的迭代器至少要是正向迭代器

(1)vector-向量

  • 是数组的一种类的表示,提供自动内存管理,动态改变vector的长度
  • 在尾部插入和删除的时间复杂度是固定;在头部和中间插入和删除元素是线性时间复杂度。
  • 反转容器rbegin()和人的()。
  • vector是最简单的模板类型,一般默认用它,除非其他序列类型的特殊优点能够更好的满足程序要求

(2)deque-双端队列

  • 在开始和结尾处插入和删除元素的时间复杂度都是固定的
  • 如果多数操作都发生在开始和结尾处,则应该使用deque数据结构
  • vecotr和deque都都提供对元素的随机访问和序列中部执行插入和删除操作,但vector的执行速度会快些,因为vector对象的设计更加简单。

20140814 explicit,布布扣,bubuko.com

20140814 explicit

标签:color   使用   io   strong   数据   2014   cti   时间   

原文地址:http://www.cnblogs.com/yexuannan/p/3914165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!