以数组方式读取map元素的问题
以数组方式读取map元素的时候,如果map的key中不存在指定的数据。会不会出现内存泄露之类的问题。和大家讨论一下。比如:
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct MapData {
string data;
int index;
};
int main() {
map<string, MapData> dataMap;
char temp[5] = {0};
for(int i = 0; i < 10; i++) {
itoa(i, temp, 10);
MapData data;
data.data = "data" + string(temp);
data.index = i;
dataMap["data" + string(temp)] = data;
}
for(int i = 0; i < 20; i++) {
itoa(i, temp, 10);
//这段代码,已经调试通过。但是当i大于9时,下面这种写法会不会存在风险。希望大家踊跃讨论。
MapData data = dataMap["data" + string(temp)];
if (data.data == "") {
cout << "data not found: data" + string(temp) << endl;
} else {
cout << "data:" << data.data << "Index: " << data.index << endl;
}
}
}
C++的map以[]方式存取数据是以什么方式进行的。读取时,如果key不存在,有时一什么机制返回什么样的数据的?
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct MapData {
string data;
int index;
};
int main() {
map<string, MapData> dataMap;
char temp[5] = {0};
for(int i = 0; i < 10; i++) {
itoa(i, temp, 10);
MapData data;
data.data = "data" + string(temp);
data.index = i;
dataMap["data" + string(temp)] = data;
}
for(int i = 0; i < 20; i++) {
itoa(i, temp, 10);
//这段代码,已经调试通过。但是当i大于9时,下面这种写法会不会存在风险。希望大家踊跃讨论。
MapData data = dataMap["data" + string(temp)];
if (data.data == "") {
cout << "data not found: data" + string(temp) << endl;
} else {
cout << "data:" << data.data << "Index: " << data.index << endl;
}
}
}
C++的map以[]方式存取数据是以什么方式进行的。读取时,如果key不存在,有时一什么机制返回什么样的数据的?
...全文
相关推荐
java实现的map排序
HashMap里面的元素是无序的,要进行排序的话只能是用TreeMap和SortedMap,java实现的map排序
CStringArray二维数组
CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组
数组和集合
数据类型 数组和集合 图形界面 输入输出流 线程池 网络编程
JavaScript数组方法大全(推荐)
本文是小编给大家特意整理的关于js数组方法的知识,非常实用,在面试笔试题中经常用得到,有需要的朋友可以参考下
UnityShader 法线贴图(Normal Map)与视差贴图(Parallax Map)
主要研究一下怎样增强法线贴图的效果,法线贴图的进阶版-视差贴图(Parallax Map)。


