关于map 容器insert顺序

摘要:
使用namespacestd;如果(str==“string”)cout<//SetConsoleTitle(appname);res);&}睡眠(10);}*/#包括<标准工时>#包括<usingspacestd;//编译器进行了隐式转换,这实际上是&Chr或(char*str=&Chr;

  今天测试我的节点,maya一次次死掉,一点一点的打印测试,良久才知:我想当然的将插入map的顺序,作为我执行的顺序直接遍历,打印数据显示,map有自动将键值排序的功能,比如以字符串为例,会按照a、b、c....顺序排好。

   而且对于map,如果一个元素key不存在,但是直接map[key],那么map的size就增加1,我感觉有点儿相当于insert,但map[key]没有值。这样很不规范,对于有一定代码量的程序测试造成不必要的困扰,所以最好使用find函数,判断是否==map.end()

关于string、和char *

下面是一则小程序,打印的数据

#include<string.h>
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
    char *str = "string";
    if(str == "string" )
        cout<<"str = "<<str<<endl;
    else
        cout<<"nothing"<<endl; 
    return 0;

}

结果打印的是:

  str = string

但是执行下面代码:

/*
#include<stdio.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
int main(int argc, _TCHAR* argv[])
{
    //const LPCWSTR appname = TEXT("BLess the day");
    //SetConsoleTitle(appname);
    HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄 
    INPUT_RECORD inRec;
    DWORD res;
    while (1) 
    {
        ReadConsoleInput(hInput, &inRec, 1, &res); 
        if (inRec.EventType != MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键  
        {   
            SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),inRec.Event.MouseEvent.dwMousePosition);
            printf("Hello World!");  
        }  
        Sleep(10); 
    } 
    return 0;
}

*/
#include<string>
#include<string.h>
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
    char chr[255] = "string";
    char *str = chr;//编译器做了隐式的转换 实际为&chr或(char *str = &chr;在一些编译器甚至会报警告信息)
    if(str == "string" )
        cout<<"str = "<<str<<endl;
    else
        cout<<"nothing"<<endl; 
    return 0;

}

结果是:

  nothing

遇见了,话说是char[]不能直接和string比较的原因,关于map 容器insert顺序第1张

 关于map 容器insert顺序第2张

指针是不分配内存的,它指向的是系统的只读的内存,而数组是分配内存的,就是将系统的只读的内存里面的值复制到它的内存里面,因此可读写
http://duanhengbin.iteye.com/blog/1706635
http://zhidao.baidu.com/link?url=bkNqC8gndvsg93lqceJVNk0VwlbitmHbJhwfG8H8CRO1H6zEGdR7GIxboEsrvty-vcvd18KyLESP-hEseFFknK

免责声明:文章转载自《关于map 容器insert顺序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL 中间件汇总比较CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# 如何获取Url的host以及是否是http

参考资料:https://sites.google.com/site/netcorenote/asp-net-core/get-scheme-url-host Example there's an given url: http://localhost:4800/account/login 获取整个url地址: 在页面(cstml)中  Microsoft...

DataSet分页

主要利用DataSet的筛选数据的方法 DataAdapter用Fill方法填充DataSet的时候把所取的整个记录加入到DataSet 例如:     MyAdapter.Fill(DataSet,TableName); 有时候并不需要将整个查询数据都导入DataSet,真正需要的只是数据的一部。Fill的另一种方法可以满足这种需要。     MyAda...

Fastdfs文件系统删除重复的文件

环境:centos、fastdfs Fastdfs文件系统删除重复的文件 问题:fastdfs文件系统磁盘空间疯狂扩展。 原因:fastdfs产生了很多的文件备份,要找到重复文件,排除在使用的文件删除其他的文件。 根源可能是程序反复上传原因,开发进行跟中 删除不需要文件思路: 1、查看文件重复情况 2、列出所有文件系统文件,和从数据库找到所有在用的文件名称...

Unity资源内存管理--webstream控制

一 使用前提 1,需要使用资源热更新 2,使用Assetbundle资源热更(AssetBundle是产生webstream的元凶) 二 为什么要用AssetBundle AssetBundle本质上就是一个压缩算法,只不过比起zip等一些压缩多了一些信息,比如平台信息(Ios,android),依赖信息等,既然是压缩,那就很好理解了,AssetBundl...

unsigned char 与 char

Character values of type unsigned char have a range from 0 to 0xFF hexadecimal. A signed char has range 0x80 to 0x7F. These ranges translate to 0 to 255 decimal, and –128 to +127...

logstash中关于Jdbc输入配置选项详解

Setting Input type Required clean_run boolean No columns_charset hash No connection_retry_attempts number No connection_retry_attempts_wait_time number No jdbc_connec...