v.empty() 判断容器v是否为空,如果空,返回true,否则false
v.size() 返回容器v中元素的个数
v.push_back(t) 在容器v的末尾增加一个值为t的元素
v.pop_back() 返回容器v的最后一个元素
v.insert(pos) 在容器v的pos位置插入一个元素
v.erase(pos) 删除容器v的pos位置上的元素
v.clear() 删除容器v中的所有元素
v.at(pos) 返回容器v中位置为pos的元素
v1 = v2 v2赋值个v1
v1 == v2 v1与v2是否相等,如果相等返回true
当要保存和管理的数据都是单个的个体,例如:一个整型数,一个类的对象,如果要使保存的数据成对出现,例如要让一个员工号和一个员工对象构成一个数据对,就最好用STL提供的专门容器:map
定义一个map:
#include<map>
using namespace std;
map<int, Emplyee> mapEmplyee
对map进行操作:
//map容器常用的操作
//
// m.insert(pair) 先将pair这个数据对插入map容器中,然后map容器将根据这个数据对的键对进行
// 排序,也就是说,map容器始终是排列好的
// m.size() 返回容器m中元素的个数
// m.count(KEY) 判断KEY这个键是否在容器中出现,如果出现返回1,否则返回0
// m.find(KEY) 返回容器m中指向键为KEY的数据对的迭代器
// m.erase(pos) 删除容器m中pos迭代器所指向的元素
// m.empty() 判断容器m是否为空
// m.clear() 删除容器m中所有的元素
//
//
//
// k.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <tuple>
#include <vector>
#include <string>
#include<map>
using namespace std;
class Emplyee
{
public:
Emplyee(string strName, int nYears)
: m_strName(strName) , m_nYears(nYears)
{
};
public:
virtual int GetSalary() = 0;
string GetName()
{
return m_strName;
}
protected:
int m_nYears;
string m_strName;
};
int _tmain(int argc, _TCHAR* argv[])
{
map<int, Emplyee> mapEmplyee;
Emplyee emp1;
mapEmplyee.insert(pair<int, Emplyee>(1, emp1));
//或者通过value_type类型实现数据的插入
mapEmplyee.insert(map<int, Emplyee>::value_type(1,emp1));
//或者直接插入数据,将(1983, emp1)插入
mapEmplyee[1983] = emp1;
return 0;
}