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

C++常用类型总结

2014-06-18 16:57 323 查看
最近在学C++,其中一些常用的但不熟悉的类型总结如下:

pair 类型

经常要用到含有二维参数的一些对象,比如一个点的横纵坐标,一个人们名字的first name和last name。

Requirment: header file :#include <utility>

eg: typedef pair <int, int> POINT_T;

POINTS_T point1; //定义一个POINTS_T类型对象

typedef pair <string ,string> NAME_T;
vector类型

vector类型变量有两种使用习惯,一种是数组习惯,一种是STL习惯。

eg:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void Sort(vector<int> &ivec, int length);
int main()
{
const int size = 5;
vector <string> svec(size);    //数组用法,事先规定好长度
string str[size] = {"weilele","lelewei","luoli","haha","happy"};
cout << "输出数组元素(字符串)\n";
for(int i=0;i<size;i++)
{
svec[i] = str[i];
cout << svec[i] <<endl;
}

vector <int> ivec;    //STL使用方法,定义时是空的

for(i=0;i<10;i++)
{

if(i>8)
break;
ivec.push_back(10-i);
}
cout <<"使用数组访问方式输出结果\n";
for(i=0;i<ivec.size();i++)
{
cout << ivec[i] << endl;
}
cout <<"使用STL访问方式输出结果\n";
for(vector<int>::iterator it= ivec.begin();it!=ivec.end();++it) //STL使用方法
{
cout << *it<<"\n";
}

Sort(ivec,ivec.size());

cout <<"排序后输出结果\n";
for( it= ivec.begin();it!=ivec.end();++it) //STL使用方法
{
cout << *it<<"\n";
}

return 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////
//实现对vector中元素的排序(冒泡排序)
void Sort(vector<int> &ivec, int length)
{
int i,j;
for(i=1;i<length;i++)
{
for(j=0;j<length-i;j++)
{
if(ivec[j]>ivec[j+1])
{
int temp;
temp = ivec[j];
ivec[j] = ivec[j+1];
ivec[j+1] = temp;
}

}
}

}


3、map

map类型,也叫关联数组(associated array),我们提供一个key/value对,key值用来索引map,value值用来被存储和检索的数据。使用时要包含#include<map>,使用map时两个最主要的操作就是向里面放入元素和查询元素是否存在。查找时按照key值来查询,然后得到索引值value值。map与pair的不同之处是pair的两个参数之间可以有关系也可以没有关系,map的两个参数之间一定存在对应的关系,根据key值来索引value值。map在存储时已经按照键值排序(默认使用less()函数排序,也就是从小到大顺序(小的在前面,大的在后面,0---size))。

4、array,queue,list,stack,STL包含的模板类,map和set,multimap,multiset的排序,map与pair的不同之处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: