//vector
#include <windows.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
#define VEC_COUNT 3
void main(int argc,TCHAR*argv[])
{
//1.构造函数
vector<int>vec1,vec2;
//vector<int> vec(VEC_COUNT); //有VEC_COUNT个元素,值都为0
//vector<int> vec(VEC_COUNT,2); //有VEC_COUNT个元素,值都为2
//2.添加元素
vec1.push_back(0);
vec1.push_back(4);
vec2.push_back(0);
vec2.push_back(3);
vec2.push_back(8);
//3.容量 长度
cout<<"vec1容量是:"<<vec1.capacity()<<", vec2长度是:"<<vec1.size()<<endl;
cout<<"vec2容量是:"<<vec2.capacity()<<", vec2长度是:"<<vec2.size()<<endl;
//4.遍历输出所有元素 下标/迭代器
for (vector<int>::iterator it=vec1.begin(); it!=vec1.end(); it++)
cout<<*it<<" ";
cout<<endl;
for (int i=0;i<vec2.size();i++)
cout<<vec2[i]<<" ";
cout<<endl;
//5.大于,小于,等于,大于等于,小于等于
if(vec1 < vec2)
cout<<"vec1 小于 vec2"<<endl;
else if(vec1 > vec2)
cout<<"vec1 大于 vec2"<<endl;
else if(vec1 == vec2)
cout<<"vec1 等于 vec2"<<endl;
//6.重设容器大小
//vec1.resize(1); //重新设置为,有VEC_COUNT个元素,舍掉后面的值
//vec1.resize(4); //重新设置为,有VEC_COUNT个元素,新插入的值都为0
//vec1.resize(4,2); //重新设置为,有VEC_COUNT个元素,新插入的值都为2
//7.插入
//vec1.insert(vec1.begin(),3); //插入一个值 3
//vec1.insert(vec1.begin(),3,5); //插入三个值 都是5
//vec1.insert(vec1.begin(),vec2.begin(),vec2.end()); //插入Vec2中的值
//8.删除
//vec1.erase(vec1.begin()+1); //删除指定位置的元素
//vec1.erase(vec1.begin(),vec1.end()); //删除两个位置之间的元素
//vec1.clear(); //删除vec1中所有元素
//9.赋值与对换
//vec1 = vec2; //vec1元素的个数,内容都与vec2相同
//vec2 = vec1; //vec2元素的个数,内容都与vec1相同
//vec1.swap(vec2); //交换两个容易的个数,内容
for (it=vec1.begin(); it!=vec1.end(); it++)
cout<<*it<<" ";
cout<<endl;
for (it=vec2.begin(); it!=vec2.end(); it++)
cout<<*it<<" ";
cout<<endl;
//10.泛型算法
it = find(vec1.begin(),vec1.end(),4); //查找元素4在vec1中的位置
cout<<*it<<endl;
}
///list
#include <list>
#include <iostream>
using namespace std;
void main(void)
{
int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
list<int> name(a,a+10);
list<int>::iterator it; //迭代器
name.push_back(11);//加在最后
name.push_front(0);//加在开始
// phone_book.insert(i,e);//加在在i所引用的元素之前
//name.insert(5,5);//为什么不行
for (it = name.begin(); it != name.end(); it++)
{
const int& e=*it;
cout << e << endl;
}
}
//map这个程序运行不了,不知道为什么???
1#include <iostream>
2#include <iomanip>
3#include <string>
4#include <map>
5using namespace std;
6int main()
7{
8map<string,int> m;
9int n; cin>>n;
10string s;
11int x;
12for (int i=1;i<=n;i++)
13{
14 cin>>s>>x;
15 m[s]=x;
16}
17int k;
18cin>>k;
19for (int i=1;i<=k;i++)
20{
21 cin>>s;
22 cout<<m[s]<<endl;
23}
24return 0;
25}
26
27
28一、map的说明
291 头文件
30#include <map>
31
322 定义
33map<string, int> my_Map;
34或者是typedef map<string, int> MY_MAP;
35MY_MAP my_Map;
36
373 插入数据
38(1) my_Map["a"] = 1;
39(2) my_Map.insert(map<string, int>::value_type("b",2));
40(3) my_Map.insert(pair<string,int>("c",3));
41(4) my_Map.insert(make_pair<string,int>("d",4));
42
434 查找数据和修改数据
44(1) int i = my_Map["a"];
45my_Map["a"] = i;
46(2) MY_MAP::iterator my_Itr;
47my_Itr.find("b");
48int j = my_Itr->second;
49my_Itr->second = j;
50不过注意,键本身是不能被修改的,除非删除。
51
525 删除数据
53(1) my_Map.erase(my_Itr);
54(2) my_Map.erase("c");
55还是注意,第一种情况在迭代期间是不能被删除的,道理和foreach时不能删除元素一样。
56
576 迭代数据
58for (my_Itr=my_Map.begin(); my_Itr!=my_Map.end(); ++my_Itr)
{}
59
607 其它方法
61my_Map.size() 返回元素数目
62my_Map.empty() 判断是否为空
63my_Map.clear() 清空所有元素
64可以直接进行赋值和比较:=, >, >=, <, <=, != 等等
65
66更高级的应用查帮助去吧,^_^;