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"); }
更多可参考http://blog.sina.com.cn/s/blog_a9303fd9010195hm.html。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!