您的位置:首页 > 编程语言 > C语言/C++

c++基础(一):数据类型和结构

2014-11-24 15:30 351 查看
1.map

map<int, int> rankDict;//定义map
rankDict[1] = 5;
rankDict[2] = 6;//map赋值
int dictSize = rankDict.size();	//map的大小
cout << dictSize <<endl;
map<int, int>::iterator iter;
for(iter = rankDict.begin();iter!=rankDict.end();iter++){
cout << iter->first <<endl;
}//遍历map
iter = rankDict.find(2);//查找
cout <<iter->first<<":"<<iter->second;//first为key,second为value
rankDict.clear();//清空
if (rankDict.empty()){//判断是否为空(True)
cout <<"empty";
}
rankDict.erase(iter);//删除指定的key的位置
rankDict.erase(1);//删除指定的key
    //由于map的每个数据对应红黑树上的一个节点,这个节点在不保存你的数据 时,是占用16个字节的,一个父节点指针,左右孩子指针,还有一个枚举值(标示红黑的,相当于平衡二叉树中的平衡因子),很费内存.


2.enum(枚举)

enum keyword{FIRST,SECOND,THIRD}
void func(keyword key){
switch(key){
case FIRST:;
case SECOND:;
}
}


3.数组Vector

vector<int> vecNumber;//可以变化大小的数组申请
int number[] = {2,3,4};//直接初始化可以不写长度


关于vector的操作

//vector的类型可以是int,double,string 还可以是结构体。但是得是可作用域的。
vector<int> number;
for(int i=0;i<10;i++){
number.insert(number.begin()+i,i*i);//插入元素
}
number.push_back(1000);//尾部插入,相当于python的append
number.erase(number.begin()+3) //删除第三个元素
number.erase(number.begin()+i,number.end()+j);//删除[i+j-1]的区间
number.size();//大小
number.clear(); //清空
    number.shrink_to_fit();//释放内存

#include<algorithm>
reverse(vec.begin(),vec.end()) //翻转vec,后面的迭代器可以不写。
sort(vec.begin(),vec.end())//升序排列,从小到大。
bool Comp(const int &a,const int &b)
{
return a>b;
}
sort(vec.begin(),vec.end(),Comp)//降序了


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: