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个空向量
#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个空向量
相关文章推荐
- C++ 标准库 vector list map 基本使用方法 示例程序
- C++ 标准库 vector list map使用方法
- C++ 标准库 vector list map使用方法
- C++ 标准库 vector list map使用方法
- C++ 标准库 vector list map使用方法
- 转 C++ 标准库 vector list map使用方法
- C++STL库 vector map list 使用方法
- C++ STL基本容器的使用(vector、list、deque、map、stack、queue)
- C++ STL容器的使用方法(vector、queue、list、set、map)
- C++文本查询程序 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- C++文本查询程序 不要定义类和智能指针管理数据 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- 【语言-C++】C++容器:list、vector、hash、map的区别及使用范围
- C++文本查询程序 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- C++文本查询程序 不要定义类和智能指针管理数据 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- C++存储数据结构List、CArray、Vector和Map使用分析
- C++文本查询程序 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- C++文本查询程序 不要定义类和智能指针管理数据 C++Primer练习12.28 使用vector,map,set容器保存来自文件的数据并生成查询结果
- c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑
- C++ map 和 list 转换 排序 遍历使用示例
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用