C++学习笔记汇总(二)

2014-11-24 08:28:23 · 作者: · 浏览: 1
制构造函数,初始化为现有同类容器的一部分
d) ~C();
//析构函数
(2) 迭代器
a) iterator begin() noexcept;
const_iterator begin() const noexcept;
//返回C::iterator或者C::const_iterator,引用容器第一个元素
b) iterator end() noexcept;
const_iterator end() const noexcept;
//返回C::iterator或者C::const_iterator,引用容器最后一个元素后面一位
c) reverse_iterator rbegin()nothrow;
const_reverse_iterator rbegin() const nothrow;
//返回C::reverse_iterator或者C::const_reverse_iterator,引用容器最后一个元素
d) reverse_iterator rend() nothrow;
const_reverse_iterator rend() const nothrow;
//返回C:: reverse_iterator或者C::const_reverse_iterator,引用容器第一个元素前面一位
e) const_iterator cbegin() constnoexcept;
//仅用于C++11,返回C::const_iterator,引用容器第一个元素
f) const_iterator cend() constnoexcept;
//仅用于C++11,返回C::const_iterator,引用容器最后一个元素后面一位
g) const_reverse_iteratorcrbegin() const noexcept;
//仅用于C++11,返回C:: const_reverse_iterator,引用容器最后一个元素
h) const_reverse_iterator crend()const noexcept;
//仅用于C++11,返回C:: const_reverse_iterator,引用容器第一个元素前面一位
(3) 功能函数
a) bool empty() const noexcept;
//如果容器为空,则返回true,否则返回false
b) size_type max_size() const;
//返回容器中最大元素个数
c) size_type size() const;
//返回容器当前元素个数
(4) 容器操作函数
a) iterator insert (const_iteratorposition, const value_type& val);
//插入数据到指定位置,返回新插入的数据中的第一个的迭代器,除这个插入函数外还有其他很多重载函数
b) iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);
//删除容器中指定的某个值或者一个范围,注意:范围的概念是[first,last)
c) void swap (C& x);
//将当前容器与传入的容器x交换数据
d) void clear() noexcept;
//删除当前容器中的所有元素,也即将size清为0
2.2 顺序容器
2.2.1 所有顺序容器共有函数
以下是所有顺序容器所共有的函数:
(1) 元素访问函数
a) reference front();
const_reference front() const;
//返回容器中第一个元素的引用,注意:和begin()方法返回迭代器不同,他返回的是元素的直接引用
b) reference back();
const_reference back() const;
//返回容器中最后一个元素的引用,注意:和end()方法返回迭代器不同,它返回的是元素的直接引用
(2) 容器操作函数
a) void push_back (constvalue_type& val);
void push_back (value_type&& val);
//插入元素到容器末尾
b) void pop_back();
//将容器最后一个元素删除
2.2.2 vector
(1) 使用比较
就是动态数组,它也是在堆中分配内存,元素连续存放,有保留内存,如果减少大小后内存也不会释放。如果需要的容量大于当前大小时才会再分配内存,对最后元素操作最快(在后面添加删除最快 )。访问方面,对任何元素的访问都是O(1),也就是是常数的。所以vector常用来保存需要经常进行随机访问的内容,并且不需要经常对中间元素进行添加删除操作。
vector的迭代器在内存重新分配时将失效(它所指向的元素在该操作的前后不再相同)。当把超过capacity()-size()个元素插入 vector中时,内存会重新分配,所有的迭代器都将失效;否则,指向当前元素以后的任何元素的迭代器都将失效。当删除元素时,指向被删除元素以后的任何 元素的迭代器都将失效。
(2) 功能函数
a) void resize (size_type n);
void resize (size_type n, value_type val);
//将容器的size变化成新的大小,如果n比当前size要小,则从容器后部开始删除元素;否则扩充size,可以指定填充的元素的初始值
b) size_type capacity() constnoexcept;
//返回分配给当前容器的存储空间大小,并不一定和size相等
c) void reserve (size_type n);
//为当前容器重新指定capacity的大小,如果n比当前capacity要大,则增加容量;