vector容器的基本使用
vector<int>v1, v2, v3, v4;
vector.assign(arr,arr+n)的写法
1.v1.assign(arr, arr + 5);//数组的值赋给v1
2.v2.assign(v1.begin(), v1.end());//v1赋值给v2容器
v3.assign(v1.begin() + 2, v1.end() - 1);//如果想把v1中的2,3元素赋给v3
v4.assign(5, 10);//赋了5个10给v4
swap()函数可以将两个vector容器的值进行交换
vector的大小
vector<int> v1;
v1(arr, arr + 5);
cout <<"v1.size:" << v1.size() << endl;
//empty()函数是判断v1容器的大小是否为空
if (v1.empty())//v1是否为空?
{
cout << "v1 is empty " << " ";
}
else
{
cout << "v1 is not empty" << " ";
}
return 0;
}
reszie()函数是改变vector容器大小的函数
如果变得比原来的大,则在多出的元素用零去填充
当然,也可以用reszie函数去指定v1的大小,再给多出的元素赋值
if你定义了一个v1的容器
可以用v1.push_back()函数在容器的末尾加上一个数值。
如果你想删除容器的最后一位的话,可以用v1.pop_back()
if你想在容器中的某一个位置添加一个元素的话,可以用v1.insert(v1.begin()+x,value值)
在vector容器中如果想要在容器中的一个位置中插入一个元素的话,可以用insert()函数来进行添加,
例子:
有一个v1容器,如果你想在v1的首相添加一个100,可以insert(v1.begin(),100)
命名一个vector的迭代器:
vector<int>::iterator it;
让it迭代器去指向v1容器里面的第一个元素
用for循环的方式去便利v1容器中的所有元素
deque容器:
要包含头文件
deque容器在头部和尾部删除元素的效率比vector容器的效率高。
但是在大部分情况中我们首选vector容器。
deque的操作
deque容器比vector容器多两个函数
deque.push_front(elem);//在deque容器的头部插入一个元素
deque.pop_front()//删掉头部第一个元素
list容器的操作
list是链表
链表在插入和删除元素的效率是要高的
list支持自增自减
it++ it--(OK)
it+n(err)
插入与删除
自定义了一个大小为空的list容器,在他的头部插入20在尾部插入10
lst.back()//获取lst中最后一个元素
lst.front()//获取lst中第一个一个元素
通过lst.back()和lst.front()也可以对第一个和最后一个节点做修改
list的双向迭代器
反向迭代器
lsit<int> lst1(n,elem) n是个数 elem是数值
lsit<int> lst1【beg,end)(beg和end是别的两个迭代器)
list容器不支持+n的写法
左闭右开,end加两次还取不到30
list<int>lst(const list,&list)
将lst1的值传到lst2的容器中
list的赋值
list.assign(beg,end)
通过swap方法
把lst1中的元素交换到lst2容器中
list.size()代表的是list容器中的元素个数
list的大小
list.empty()是判断list容器中是否为空
false是逻辑假 是0
true是逻辑真 是非0
如果把上面的输入删掉的话 就是逻辑真 大小为零
list.resize()是重置了list的大小
如果-3的话就把原来的元素删掉
list的插入
list.insert():
list的删除
list.erase(elem) 指定位置的元素被删除
list.remove(elem)删掉容器中所有elem
list.clear()是清空容器所有元素
list.reverse()反转
stack容器的出栈入栈
stack容器不允许迭代器遍历元素
访问元素只能把栈顶的元素删掉才能找出新的栈顶元素
快捷方式
stack.size()是容器大小
容器之间的互传
queue队列容器的应用(先进先出的容器)
取得queue容器的队首
对queue容器里面的值进行遍历
queue的数据存取
que.front() 和que.back() 是可以赋值的
set容器的操作
set容器的插入与迭代器
插入的元素最后是按升序的顺序排列的
降序的话就写一个反向的迭代器即可
可以自定义自增还是自减
自增:set<int, greater<int>>s2;
自减:set<int, less<int>> s1或set<int>;
set的查找
set.lower_bound(elem):
set.upper_bound(elem):
set的pair查找
map(键值对)容器操作
map的插入
map<int, string>mapS;
mapS.insert(pair<int, string>
mapS.insert(map<int, string>::value_type
1.
2.