C++关联数组
来源:互联网 发布:淘宝网代卖怎么做的 编辑:程序博客网 时间:2024/06/04 00:24
C++标准库:std_map作为一个关联数组
摘要:std::map作为一个容器存在一个典型应用就是作为关联数组来作用。在诸如Java等等语言中,关联数组广泛存在。std::map是一个容器,在它的概念框架中存在两个词:键和值,std::map把一个键与一个值相对,它相当于一个字典,把一个索引和一人内容对应起来。一般情况下,std::map用一个平衡二叉树来实现的,所以它的大部分操作都可以log(n)的时间里完成。下面让我们看看其中的简单使用:
#include<map>
//定义一个整数到整数的映射
//其中前一个键,后一个是值
std::map<int, int> map;
//要创建一个简单的映射,可以这样
//下面两句在map创建两个结点,分别完成预期的映射
map[0]=12;
map[99]=13;
//定义一个整数到整数的映射
//其中前一个键,后一个是值
std::map<int, int> map;
//要创建一个简单的映射,可以这样
//下面两句在map创建两个结点,分别完成预期的映射
map[0]=12;
map[99]=13;
std::map是以结点的形式存储其中的元素的,我们可以手工制造一个结点然后放到容器中或者从容器删除相关条件的结点,这些都由“键”来驱动的,也就是说一个操作你往往要告诉std::map是针对哪个键进行的。
下面给出一些典型的代码:
#include<map>
#include<string>
#include<utility>
#include<iostream>
std::map<std::string, int> string_int;
string_int[“one”]=12;
string_int[“name”]=88;
//插入元素的另一种方法
string_int.insert(std::make_pair(std::string(“ok”),0));
//搜索指定的键
std::map<std::string, int>::const_iterator b=string_int.find(“ok”);
//如果找到
if(b!=string_int.end())
{
std::cout<<“ok: “ <<*b <<std::endl;
}
//删除指定元素,根据迭代器
string_int.erase(b);
//删除指定元素,根据键,返回删除的个数
//对于std::map而言只能是0或1,但对于std::mutimap而言就不一定了
size_t n=string_int.erase(“one”);
#include<string>
#include<utility>
#include<iostream>
std::map<std::string, int> string_int;
string_int[“one”]=12;
string_int[“name”]=88;
//插入元素的另一种方法
string_int.insert(std::make_pair(std::string(“ok”),0));
//搜索指定的键
std::map<std::string, int>::const_iterator b=string_int.find(“ok”);
//如果找到
if(b!=string_int.end())
{
}
//删除指定元素,根据迭代器
string_int.erase(b);
//删除指定元素,根据键,返回删除的个数
//对于std::map而言只能是0或1,但对于std::mutimap而言就不一定了
size_t n=string_int.erase(“one”);
c++的std::map类通过[]访问
#pragmawarning(disable:4786)
#include <map>
#include <string>
#include <iostream>
int main()
{
using namespace std;
map<int, string> names;
// 元素追加
names.insert( map<int,string>::value_type( 10, “aaa” ) );
names.insert( map<int,string>::value_type( 30, “ccc” ) );
names.insert( map<int,string>::value_type( 50, “eee” ) );
names.insert( map<int,string>::value_type( 40, “ddd” ) );
names.insert( map<int,string>::value_type( 20, “bbb” ) );
// 变更值
names[50] = “fff”;
//输出
cout << names[10]<< endl;
cout << names[20]<< endl;
cout << names[30]<< endl;
cout << names[40]<< endl;
cout << names[50]<< endl;
return 0;
}
其他关联数组教程
阅读全文
0 0
- 关联数组
- 关联数组
- C语言中的指针与数组的关联1
- PHP 数组、关联数组
- 索引数组 和关联数组
- [Shell]数组与关联数组
- 关联数组转换索引数组
- php 关联数组?枚举数组?
- 1215 关联数组
- 1217 创建关联数组
- as3,Dictionary,关联数组
- 小试关联数组
- javascript关联数组
- as3,Dictionary,关联数组
- perl关联数组/哈希表
- Shell 关联数组 Hash
- javaScript关联数组
- javascript关联数组
- Mysql-5.7.17安装遇到 apply security setting报错。
- MapReduce二次排序分区,分组优化
- servlet中转发请求与重定向小结
- PL/SQL程序设计
- 【Cocos2d-x】Sprite精灵类-创建Sprite精灵对象
- C++关联数组
- bzoj 4922(背包dp)
- 利用网络资源撸一个Android源码查看器出来
- 【安卓】安卓集成魔窗-完整实例
- 游标
- voip 名词解释 Qos,VAD,AEC,AGC,CNG ,AEC,AGC
- 【Cocos2d-x】Cocos2d-x精灵的性能优化
- Cpage.js组件之间事件传播
- 链表带环的问题研究及代码实现