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

C++ 标准库 vector list map 基本使用方法 示例程序

2010-12-20 11:22 1096 查看
在stdafx.h中:


#include <iostream>

#include <string>

#include <vector>

#include <list>

#include <map>

using namespace std;

MFC工程中:

void CVectorTestDlg::OnButton1()


{

/*

在头文件类中定义

struct Entry {

string name;

int nomber;

};

*/

CString strMsg;

Entry phone_book1[10];

phone_book1[0].name="aaa";

phone_book1[0].nomber=10;

strMsg.Format("使用数组:%s",phone_book1[0].name.c_str());

MessageBox(strMsg);

///vector(有整形索引,可视为可变数组)

vector<Entry> phone_book(10);

phone_book[0].name="aaa";

phone_book[0].nomber=0;

strMsg.Format("使用vector:%s",phone_book1[0].name.c_str());

MessageBox(strMsg);

phone_book.resize(phone_book.size()+1);

phone_book[10].name="10aaa";

phone_book[10].nomber=10;

strMsg.Format("重建大小后最后一个元素:%s",phone_book[10].name.c_str());

MessageBox(strMsg);

///list(无索引,用于对检索要求不高,插入删除又频繁的场合)

list<Entry> lphone_book;

Entry el;

el.name="name0";//插入在起始

el.nomber=0;

lphone_book.push_front(el);

el.name="name2";//插入在最未

el.nomber=2;

lphone_book.push_back(el);

list<Entry>::iterator ip;

el.name="name1";//插入在特定位址

el.nomber=1;

ip=lphone_book.begin();

ip++;

lphone_book.insert(ip,el);

typedef list<Entry>::const_iterator LI;

strMsg="list中的元素:";

for (LI i=lphone_book.begin();i!=lphone_book.end();++i) {

const Entry& e=*i;

strMsg=strMsg+e.name.c_str()+",";

}

MessageBox(strMsg);

///map(索引和返回值的数据类型可自定)

map<string,int> mphone_book;//用mphone_book的第一个类型的某个值去作索引时,返回第二个类型的对应值。

mphone_book["Name0"]=0;

mphone_book["Name1"]=1;

strMsg.Format("Name0的号码:%d",mphone_book["Name0"]);

MessageBox(strMsg);

}

注意:


vector<int>intValues(10);是10个元素的1个向量

vector<int>intValues[10];是数组,含10个空向量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐