-
Notifications
You must be signed in to change notification settings - Fork 0
/
vector.txt
52 lines (51 loc) · 2.34 KB
/
vector.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include<iostream>
#include<vector>
using namespace std;
//vector内的函数
// 迭代器:(iterator)类似指针,用来遍历并选择序列中的对象,通过迭代器开发者不需要了解容器的底层结构
// 就可以实现容器的遍历
// 以下函数为类成员,使用.运算符进行调用
//empty()判断是否为空
//size()返回容器内的实际元素数目
//[]返回指定下表元素
//reserve(n)为当前向量容器预分配n个元素空间,此时容器的容量为max{n,(之前的容量)},
//但是需要自己去添加元素,只是给空间了。
//capacity()返回当前容器的容量
//resize(n)调整当前的容器大小使之变为n个元素大小的容器,就是往后续,多的元素全为0
//push_back(item)在尾部加上入一个元素
//insert(n,item)在n处插入item元素,返回值是指向item的指针
//front()获取第一个元素
//back()获取最后一个元素
//erase()删除某个迭代器或迭代器区间指定的元素,参数是iterator,删除指向的元素
//clear()删除当前容器所有元素
//begin()返回iterator or const_iterator,引用容器第一个元素
//end()返回iterator or const_iterator, 引用容器最后一个元素的后面一个位置
//rbegin()返回reserve_iterator or const_reserve_iterator, 引用容器最后一个元素,这俩反向迭代器,相当于一根绳子两头反转,其他操作一样
//rend()返回reserve_iterator or const_reserve_iterator, 引用容器第一个元素之前的位置
//emplace_back()该方法采用完美转发,所以插入字面值如myv.emplace("hello")效率比push_back高很多,只要没有遇到
//完美转发的限制就可以通过emplace_back传递任意型别的任意数量和任意组合的实参
int main()
{
//顺序容器vector(向量容器)
vector<int>v1{ 10,2 };
vector<int>::iterator it;//
vector<int>v2(10);//十个元素并初始化为零
v1.reserve(10);
it=v1.insert(v1.begin(),8 ,1);
cout << *(v1.rbegin()) << endl;
cout << *(v1.rend()-1) << endl;
//v1.erase(v1.begin());
//cout << *it << endl;
//vector<int>::iterator it2=it;
//cout << *it2 << endl;
//it2++;
//cout << *it2 << endl;
//it = v1.insert(it, 3, 1);
//cout << *it << endl;
//cout << *(it+1) << endl;
//cout << *(it+2) << endl;
for (it = v1.begin(); it != v1.end(); it++)
{
cout << *it << endl;
}
}