c++学习之map基本操作

map作为最常用的数据结构之一,用的好可以大幅度的提升性能。

// java_cpp_perftest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <map> //map
#include <string>
#include <iostream>
#include <objbase.h> // uuid使用到
using namespace std;
#define GUID_LEN 64
int _tmain(int argc, _TCHAR* argv[])
{
    int i,j;
    // map定义
    map<int, string> mapStudent;
    for (i=0;i<10000;i++) {
        // 创建UUID, vc专用, linux通用的可参考http://www.cnblogs.com/lidabo/p/3602038.html
        char buffer[GUID_LEN] = { 0 };
        GUID guid;  

        if ( CoCreateGuid(&guid) )
        {
            fprintf(stderr, "create guid error\n");
            return -1;
        }
        _snprintf_s(buffer, sizeof(buffer),
            "%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X",
            guid.Data1, guid.Data2, guid.Data3,
            guid.Data4[0], guid.Data4[1], guid.Data4[2],
            guid.Data4[3], guid.Data4[4], guid.Data4[5],
            guid.Data4[6], guid.Data4[7]);
        // map插入
        mapStudent.insert(pair<int, string>(i, buffer));
    }

    // 获取时间相对计数器, vc专用
    DWORD begin = GetTickCount();
    int f;
    for (j=0;j<100;j++) {
        for (f=0;f<10000;f++) {
            // map查找
            mapStudent.find(f);
        }
    }
    DWORD end = GetTickCount();

    // 打印时间差
    cout << (end - begin) << endl;  //就我们VS2012测试来看, 这一步居然要4s左右, 相同情况下,JDK 8只用了20ms

    // map遍历
    map<int, string>::iterator  iter;
    for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
    {
        cout << iter->first << "   " << iter->second << endl;
    }
    system("pause");
}
时间: 2024-10-20 22:21:33

c++学习之map基本操作的相关文章

iOS学习之Map,定位,标记位置的使用

iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可.这次要实现的效果如下: 有标注(大头针),定位,地图. 1.添加地图 1.1 新一个Single View app ,选择默认项,创建后,在ViewController.h [cpp] view plaincopy #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocati

学习java窗口基本操作时无聊写的

学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;

java-测试开始map基本操作

package java_test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class mapDemo { pu

孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5

孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongoDB的简单操作,并继续对一些可能反复经常使用的操作进行简单的封装.同时通过搜索了解了如何对本地Mongo数据库进行权限设置(没有实践本地数据库的用户权限设置.) 按个人规划,今天是初步了解学习MongoDb数据库的最后一个学习日,后续将在真正使用此数据库时,再对其进行深入研究. 一.今天完成了两个可

Javascript学习之Map和Filter函数实现方法详解

本文和大家分享的主要是JavaScript的Map和Filter函数的实现相关内容及其工作原理,一起来看看吧,希望对大家学习javascript有所帮助. Array.map Array.map通过对输入的数组中每一个元素进行变换,返回由变换后的元素按序组成的新数组.原始数组的值不会被修改.假设我们相对一个数组中的每一个元素乘以3,使用for循环可以这样写. for循环 var originalArr = [1, 2, 3, 4, 5];var newArr = [];for(var i = 0

Hadoop-2.4.1学习之Map任务源码分析(上)

众所周知,Mapper是MapReduce编程模式中最重要的环节之一(另一个当然是Reducer了).在Hadoop-2.x版本中虽然不再有JobTracker和TaskTracker,但Mapper任务的功能却没有变化,本篇文章将结合源代码深入分析Mapper任务时如何执行的,包括处理InputSplit,mapper的输出.对输出分类等.在进行分析之前先明确几个概念:作业.任务.任务的阶段和任务的状态,可以将作业理解为要最终实现的功能或目的,比如统计单词的数量,而任务就是对该作业的拆分,只负

Hadoop-2.4.1学习之Map任务源码分析(下)

在Map任务源码分析(上)中,对MAP阶段的代码进行了学习,这篇文章文章将学习Map任务的SORT阶段.如果Reducer的数量不为0,则还需要进行SORT阶段,但从上面的学习中并未发现与MAP阶段执行完毕调用mapPhase.complete()类似的在SORT阶段执行完毕调用sortPhase.complete()的源码,那SORT阶段是在什么时候启动的?对于Map任务来说,有输入就有输出,输入由RecordReader负责,输出则由RecordWriter负责,当Reducer的数量不为0

JAVA学习--集合Map的使用

* Map接口  *         |-----HashMap:Map的主要实现类  *         |-----LinkedHashMap:使用链表维护添加进Map中的顺序.故遍历Map时,是按添加的顺序遍历的. *         |-----TreeMap:按照添加进Map中的元素的key的指定属性进行排序.要求:key必须是同一个类的对象! *                 针对key:自然排序   vs 定制排序  *         |-----Hashtable:古老的实现

Unity学习-软件的基本操作(二)

基本操作 1:Scene中 以小手显示,平移画布,与鼠标中键一样 2:平移 游戏对象,组件的 Position属性 也可设置 3:旋转 游戏对象,组件的 Rotation属性 也可设置 4:缩放 游戏对象,组件的 Scale属性 也可设置 5:旋转中心轴的选择:       Pivot:以当前游戏对象为转轴       Center:表示SphereP和SphereC的 中点 为转轴 6:坐标系的选择       Global:世界坐标系,与右上角坐标系同步       Local:本地坐标系,