容器vector的使用总结 容器stack(栈)
0、头文件:#include<vector>; using namespace std;
1、定义: vector<type> vec;
2、迭代器
vector<type>::iterator it; vector<type>::const_iterator it; vector<type>::reverse_iterator it; vector<type>::const_reverse_iterator it;
3、vector功能
存取元素的方法:
vec[i] 和 vec.at(i) //存取第i个元素
vec.front() //存取第一个元素,注意 vce.front()=122;//表是给第一个元素赋值为122,等价于 vec[0]= 122;
vce.back() //存取最后一个元素
新增或移除元素的方法:
vec.push_back(); //在容器最后加一个元素
vec.insert(); //插入一個或多個元素至 vector 內的任意位置
#include <iostream> #include <vector> void print_vec(const std::vector<int>& vec) { for (std::vector<int>::const_iterator it=vec.begin();it!=vec.end();it++) { std::cout << ' ' << *it; } std::cout << '\n'; } int main () { std::vector<int> vec(3,100); print_vec(vec); std::vector<int>::iterator it = vec.begin(); it = vec.insert(it, 200); print_vec(vec); vec.insert(it,2,300); print_vec(vec); // "it" no longer valid, get a new one: //不再可用********** it = vec.begin(); std::vector<int> vec2(2,400); vec.insert(it+2, vec2.begin(), vec2.end()); print_vec(vec); int arr[] = { 501,502,503 }; vec.insert(vec.begin(), arr, arr+3); print_vec(vec); }
vec.pop_back() // 刪除 vector 最尾端的元素
vec.erase() //刪除 vector 中一個或多個元素。
vec.clear() //清空所有元素。
获取容器的长度和容量:
vec.size() // 取得 vector 目前持有的元素个数。
vec.empty() //如果 vector 內部为空,则返回 true 值。
vec.capacity() // 取得 vector 目前可容納的最大元素个数。
改变容器的大小:
vec.reserve() //改变ector 的容量大小,容量只能增加,不可以減少。
vec.resize() //改变vector 目前持有的元素个数。
迭代四个:vec.begin() vec.end() vec.rbegin() vec.rend()
容器stack
栈(FIOL,First-in Last-out)三个主要的功能---存、取、删。
stack<int> myStack ; myStack.push(3); //存 myStack.top(); //取 myStack.pop(); //删
容器map
#include <iostream> #include<string> #include<map> using namespace std; int main () { map<string,int> myMap; map<string,int>::iterator myMapIt; myMap["wo"] = 2; //存入方法1 myMap.insert(make_pair("ni",1)); //存入方法2 for (myMapIt = myMap.begin();myMapIt!=myMap.end();myMapIt++) //遍历元素 { cout<<myMapIt->first<<endl; cout<<myMapIt->second<<endl; cout<<myMap["ni"]; } myMap.count("wo"); //返回值为1,即表示存在键值为"wo",不存在返回为0.(注意只有1、0两个值) myMap.erase("ni"); //删除 myMap.clear() ; return 0; }