c++笔记 关于标准库中容器内的元素

1.容器元素的条件
    STL容器元素必须满足以下三个基本要求:
1)必须可透过copy构造函数进行复制。

    副本与原本必须相等,亦即所有相等测试的结果,原本与副本行为一致。所有容器都会在内部生成一个元素副本,并返回该暂时性副本,因此copy构造函数会被频繁地调用。所以copy构造函数应该尽可能的优化。


2)必须可以透过assignment操作符完成赋值动作。

    容器与算法都使用assignment操作符,才能以新元素改写旧元素。


3)必须可以透过析构函数完成销毁动作。


这三个条件对任何class都是隐式成立的。下面几个条件,也应当获得满足:
4)对序列式容器而言,元素的default构造函数必须可用。

    我们可以在没有给予任何初值的情况下,创建一个非空容器,或增加窗口的元素个数。这些元素都将以default构造函数完成。


5)对于某些动作,必须定义operator==以执行相等测试。如果你有搜寻需求,这一点特别重要。


6)在关联式容器中,元素必须定义出排序准则。缺省情况下是operator<,透过仿函数less<>被调用。


2.value语意与Reference语意
    stl只支持value语意,不支持reference语意。一个显而易见的方法是以指针实现reference语意,但直接使用指针是不够安全的。好一点的办法是使用智能型指针,但请注意std::auto_prt是绝对不能用的,应该使用引用计数型的指针,如boost::shared_ptr。


摘自c++标准程序库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值