返回目录(建议收藏):【目录】全面理解C++ STL标准模板库
原理代码
template> class vector; // generic template
vector概念
vector是表示可以改变大小的数组的序列容器.
就像数组一样,向量为它们的元素使用连续的存储位置,这意味着它们的元素也可以使用指向其元素的常规指针上的偏移量来访问,并且与在数组中一样有效. 但与数组不同的是,它们的大小可以动态变化,它们的存储由容器自动处理。
- std::vector
- 0.头文件
- 1.定义vector的方式
- (1)常见定义方式
- (2)案例分析
- 2.vector输出函数
- (1)使用计数器打印vector容器
- (2)通过迭代器输出
- (3)使用auto/typedef/type alias
- (4)使用range-base
- 3.vector的成员函数
- (1)vector::assign
- (2)vector::at
- (3)vector::back
- (4)vector::begin
- (5)vector::end
- (6)vector::capacity
- (6)vector::size
- (8)vector::max_size
- (9)vector::resize
- (10)vector::clear
- (11)vector::push_back
- (12)vector::pop_back
- (13)vector::insert
- (14)vector::empty
- (15)vector::swap
- (16)其他函数
- 附录
#include1.定义vector的方式 (1)常见定义方式
std::vector(2)案例分析vitem1{1,2,3,4}; //1.直接赋值 int a[5] = {1,3,6,8,4}; std::vector vitem2(a,a+5); //2.数组赋值 std::vector vitem3; //3.vector容器的默认构造 for(int i=0;i<50;i+=5){vitem3.push_back(i);} //方法一 vitem3.assign(10,66); //方法二 std::vector vitem4(vitem4.begin(),vitem4.end()); //4.区间进行构造 std::vector vitem5(5,6); //5.n个elem进行构造 std::vector vitem6(vitem5); //6.拷贝构造
案例代码
结果输出
//方式一:使用计数器打印vector容器 void my_print2(vector&v) { for (unsigned i=0; i (2)通过迭代器输出 //方式二:迭代器打印vector容器 void my_print(vector&v) { for(vector ::iterator it=v.begin();it!=v.end();it++) { std::cout<<(*it)<<" "; } std::cout< (3)使用auto/typedef/type alias 注:这种方法原理就是使用迭代器,auto在这就是指的是迭代器类型
//方式三:使用auto/typedef/type alias for (auto i = path.begin(); i != path.end(); i++) { std::cout << *i << ' '; }(4)使用range-base注:这种方法就是方法三的变形式,同样是使用迭代器输出
//方式四:range-base 循环 for (auto i : path) std::cout << i << ' ';3.vector的成员函数 (1)vector::assign函数功能:将新内容分配给vector,替换其当前内容,并相应地修改其大小。
template(1)void assign (InputIterator first, InputIterator last);//新内容是由first和last之间范围内的每个元素按相同顺序构造的元素。 (2)void assign (size_type n, const value_type& val);//新内容是n 个元素,每个元素都初始化为val的副本 举例代码:
(2)vector::at
结果输出
函数功能:返回对向量中位置n处元素的引用。
(3)vector::back
举例代码:
结果输出
函数功能:返回对向量中最后一个元素的引用。
(4)vector::begin
与成员vector::end不同,它返回一个刚刚经过这个元素的迭代器,这个函数返回一个直接引用。在空容器上调用此函数会导致未定义的行为。
举例代码:
结果输出
函数功能:返回指向向量中第一个元素的迭代器
(5)vector::end
例子代码
结果输出
函数功能:返回指向向量中最后一个元素的迭代器
(6)vector::capacity
例子代码
结果输出函数功能:返回当前为vector分配的存储空间的大小,以元素表示。
(6)vector::size
例子代码
函数功能:返回当前为vector分配的存储空间的大小,以元素表示。
例子代码结果输出:见(6)
(8)vector::max_size函数功能:返回当前为vector分配的存储空间的大小,以元素表示。
例子代码结果输出:见(6)
(9)vector::resize函数功能:调整容器大小,使其包含n 个元素。
(10)vector::clear
例子代码
结果输出
函数功能:从向量中移除所有元素(被销毁),留下大小为0的容器。
(11)vector::push_back
例子代码
结果输出函数功能:在vector的末尾添加一个新元素,在其当前最后一个元素之后。
(12)vector::pop_back
例子代码:见(10)
结果输出见(10)函数功能:删除vector 中的最后一个元素,有效地将容器大小减少一。
(13)vector::insert函数功能:通过在指定的插入元件之前新元素扩展位置,有效地增加了容器的尺寸由插入元件的数量。
(14)vector::empty
例子代码
结果输出函数功能:返回向量是否为空(即其大小是否为0)。
(15)vector::swap函数功能:返回当前为vector分配的存储空间的大小,以元素表示。
(16)其他函数
例子代码
结果输出【传送门】
附录
vector::cbegin
vector::cend
vector::crbegin
vector::crend
vector::data
vector::emplace
vector::emplace_back、
vector::front
vector::get_allocator
vector::operator=
vector::reserve
vector::shrink_to_fit
vector::rend
vector::rbegin
vector::operator[]
vector::erase成员类型:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)