【2016.5.08】C++ 学习笔记

异常规范

异常规范是在 C++11 中弃用的 C++ 语言功能。这些规范原本用来提供有关可从函数引发哪些异常的摘要信息,但在实际应用中发现这些规范存在问题。 证明确实有一定用处的一个异常规范是throw() 规范。
例如: cpp void MyFunction(int i) throw();
告诉编译器函数不引发任何异常。它相当于使用 __declspec(nothrow)。这种用法是可选的。
(C++11) 在 ISO C++11 标准中,引入了 noexcept 运算符,该运算符在 Visual Studio 2015 及更高版本中受支持。尽可能使用
noexcept 指定函数是否可能会引发异常。

简单地总结上面的废话,就是本来throw(xxx)可以指定函数可能引发啥异常,但是后来人们发现啥异常没卵用,唯一有用的用法就是用throw()指定不会引发任何异常,而这种唯一有用的异常规范用法在C++11中被noexcept替代掉了,异常规范也直接废弃了。

STL

vector, list, deque 都是顺序容器
vector, deque 支持对任意元素的访问,元素严格有序
list, set, multiset, map, multimap 支持bidirectional iterator,可以++iter –iter
stack, queue, priority_queue 不支持迭代器
map 和 set 中不允许存在关键字相同的元素(multimap和multiset可以)
所有的容器都有拷贝构造函数
输出迭代器只能够向一个序列写入数据,它可以被修改和引用,不能用作右值(不能读取值)
调用容器的 erase(beg, end) 函数,会删除容器中的 从 beg 开始(包含beg) 到 end 结束(但不包含end) 的所有元素
clear
swap 交换内容
clear 清空元素
assgin(n, elem) assgin(begin, end) 清空并且加上那堆元素

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信