vector,list,map,迭代器iterator

//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<stringint> my_Map; 
34或者是typedef map<stringint> MY_MAP; 
35MY_MAP my_Map; 
36
373 插入数据 
38(1) my_Map["a"= 1
39(2) my_Map.insert(map<stringint>::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(1int 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更高级的应用查帮助去吧,^_^;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值