stl map 下标-STL容器map 下标访问的问题

问题描述

STL容器map 下标访问的问题
STL容器map 下标访问的问题
定义了如下的一个map 容器 Key 是int values 是一个结构体
typedef struct _prostru
{
int jmqnum;
int bncnun;
_prostru()
{
jmqnum=-1;
bncnun=-1;
}
}PROSTRU;

map m_pro;

m_pro[1].jmqnum=5;
m_pro[2].bncnum=2;

在进程中 可以用下标访问和修改 结构体中的值
线程传入后 是个指针的 这样子写应该没错吧
map *pInfo=(map *)Pparam;
那么怎么用 pInfo 去修改 比如 下标Key为 1的值?
要用迭代器么?find 后再改?
能不能直接用数组下标一样的方法?
pInfo[1]->jmqnum=3;这样子的

解决方案

map * pInfo = (map *)(Ppram);
*pInfo[1].jmqnum=5;

这里你要用模板map去特化一个类型

解决方案二:
map<intPROSTRU> * pInfo = (map<intPROSTRU> *)(Ppram);
*pInfo[1].jmqnum=5;

这里你要用模板map去特化一个类型

解决方案三:
指针就用->

 pInfo->[1]->jmqnum=3;

解决方案四:
STL容器map的下标运算符[]

时间: 2025-01-19 19:02:28

stl map 下标-STL容器map 下标访问的问题的相关文章

STL中map与hash_map容器的选择收藏

这篇文章来自我今天碰到的一个问题,一个朋友问我使用map和hash_map的效率问题,虽然我也了解一些,但是我不敢直接告诉朋友,因为我怕我说错了,通过我查询一些帖子,我这里做一个总结!内容分别来自alvin_lee ,codeproject,codeguru.baidu等等! 先看看alvin_lee 朋友做的解析,我觉得还是很正确的,从算法角度阐述了他们之间的问题! 实际上这个问题不光C++会遇到,其他所有语言的标准容器的实现及选择上都是要考虑的.做应用程序你可能觉得影响不大,但是写算法或者核

浅析stl序列容器(map和set)的仿函数排序_C 语言

问题:set是一个自动有序的集合容器,这是set的一个最实惠的性质,从小到大,只要你插入进去,就有序了.但是,如果你不想要这个顺序呢,是不是可以人为控制set容器的元素顺序呢?答案是,可以的,因为stl也是程序员设计的. 首先看stl的模板构造函数 复制代码 代码如下: explicit set ( const Compare& comp = Compare(), const Allocator& = Allocator() );templateset ( InputIterator fi

c++,关于stl的应用,定义map

问题描述 c++,关于stl的应用,定义map 我想定义一个map容器,key是一个string,值是一个指向vector的指针,但是不同的string会对应不同类型的vector,这就不好定义了.求帮忙解决 解决方案 似乎没有很好的解决方案,因为stl是泛型,类型参数不同,就相当于两个不同的类型,不能存储在一个容器中.下面是一个勉强能用的方法,供你参考:可以用map<string void*>,然后再对void*强制类型转换,得到你想要的指针.前提是你已经知道每个string对应什么类型的指

深入解析C++ STL中的常用容器_C 语言

STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用.下面,我们就浅谈某些常用的容器.这里我们不涉及容器的基本操作之类,只是要讨论一下各个容器其各自的特点.STL中的常用容器包括:顺序性容器(vector.deque.list).关联容器(map.set).容器适配器(queue.stac). 1.顺序性容器 (1)vectorvector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问.由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢

Cocos2dx 3.0 过渡篇(九)浅谈容器Map

尊重原创,转载请注明来自:star特530的CSDN博客 http://blog.csdn.net/start530/article/details/19284301 本篇接着上一篇的容器继续唠叨,了解上一篇:http://blog.csdn.net/start530/article/details/19170853 既然Vector是对比Array,那么Map就对比Dictionary吧.1.创建 [cpp] view plaincopy auto sp1 = Sprite::create("

STL之红黑树容器:set,hash_set,multiset,hash_map,multimap

 1红黑树set(不能包含重复元素) 案例1:红黑树容器set,插入,查找 #include<iostream> #include<set> usingnamespacestd;   //set中不能有重复的元素,它是一个红黑树容器 voidmain() {    set<int>myset;    myset.insert(10);    myset.insert(9);    myset.insert(8);    myset.insert(7);    mys

STL中的set容器的一点总结

1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入.排序.删除.查找等.让用户在STL使用过程中,并不会感到陌生. 关于set,必须说明的是set关联式容器.set作为一个容器也是

【温故而知新】C和C++8:STL中的list容器

STL提供的list容器实现了双向链表的功能.因此,list容器中的各个元素都是双向链表中的节点,可以很方便地插入和删除元素,但是无法对容器中的元素进行随机存取,必须从容器的头部或尾部遍历.list容器在序列中的任何位置增删元素都是非常高效率的,并可以在需要的时候任意改变自身容量的大小. 1.list容器的定义: 关于如何构造一个list对象,STL提供了多种构造方法: list<type> name;//构建一个空对象 list<type> name(size);//构建一个初始

接口交互参数最好不要用map?(Gson转map)

问题描述 接口交互参数最好不要用map?(Gson转map) 今天在做webService开发时,用到了map,但是被告知最好不要用,说原因是"接口交互参数最好不要用map,效率低,不便于理解,而且分层不清楚",真的是这样吗?求大神解答. 解决方案 用什么都可以 只要用的方便: 这个是 gson 转map的教程 推荐你看看 http://www.sh0745.com/java/201503/26155454.html 解决方案二: 既然是webservice,那么接口就用json好了.