#include "stdafx.h"
#include <map>
#include <string>
#include <iostream>
using namespace std; #define fn(x) int a##x; //声明一个ax变量 a常量 x变量
#define tn(x) #x //可以直接拼一个字符串 int 可以直接输出 int //可以帮你写一个类
#define cclass(cname,x,y,z) class C##cname\
{\
public:\
x m_##x;\
y m_2##y;\
char m_##z;\
}; /////////////////////////////////////////////////////////////////////////
template <class ContainersType>
void PrintContainersData(ContainersType containers)
{
ContainersType::iterator begin = containers.begin(),
end = containers.end();
for(;begin!=end;begin++)
{
cout<<"Key = "<<begin->first<<"\t"<<"Value = "<<begin->second<<endl;
}
} int _tmain(int argc, _TCHAR* argv[])
{
cout<<"First output :"<<tn(int)<<endl;
cclass(Hero,int,int,heroName); //注意:此处用到了 定义的宏
CHero h1; fn();
a3 = ;
cout<<"Second output a3 = "<<a3<<endl;
/////////////////////////////////////////////////////////////////////////
map<string,float> m;
m["Tom"] = ;
m["Jack"] = ;
m["Jack"] = ; //注意:下面的会将上面的成绩修改 cout<<"Third output : "<<endl;
map<string,float>::iterator it = m.begin();
for(; it!=m.end();it++)
{
cout<<it->first<<" "<<it->second<<endl;
} cout<<"Forth output : "<<endl;
PrintContainersData(m); //m.insert(make_pair("Jack",100)); //注意:如果有相同的 则不可插入
m.insert(map<string,float>::value_type("Jack",)); //int t = m["ww"]; //注意[]:找不到 会自动添加这个名字
cout<<"Fifth output : "<<endl;
map<string,float>::iterator it2 = m.find("ww"); //注意find():找不到 会处理
if(it2==m.end())
cout<<"not find"<<endl; return ;
}

运行结果 如下图:

#define 的一些用法 以及 迭代器的 [] 与 find()函数的区别的更多相关文章

  1. #ifndef#define#endif的用法

    在网上看到了感觉作者总结得很好,作者辛苦了! #ifndef#define#endif的用法 文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都 ...

  2. #ifndef#define#endif的用法(整理)

    [转] #ifndef#define#endif的用法(整理)    原作者:icwk  文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ...

  3. c/c++头文件中#ifndef/#define/#endif的用法

    想必很多人都看过“头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用”.但是是否能理解“被重复引用”是什么意思?头文件被重复引用了,会产生什么后果?是不是所有的头文 ...

  4. Oracle 变量 之 define variable declare 用法及区别

    Oracle 变量 之 define variable declare 用法及区别 Table of Contents 1. 扯蛋 2. define和accept 3. variable 3.1. ...

  5. STL之--插入迭代器(back_inserter,inserter,front_inserter的区别)

    除了普通迭代器,C++标准模板库还定义了几种特殊的迭代器,分别是插入迭代器.流迭代器.反向迭代器和移动迭代器,定义在<iterator>头文件中,下面主要介绍三种插入迭代器(back_in ...

  6. Python3基础(4)匿名函数、装饰器、生成器、迭代器、内置函数、json&pickle序列化、软件目录开发规范、不同目录间模块调用

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  7. CSS 属性 :before && :after的用法,伪类和伪元素的区别

    一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...

  8. 【转】const的用法,特别是用在函数前面与后面的区别!

    在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const成员函数中,this的类型是一个指向 ...

  9. const的用法,特别是用在函数前面与后面的区别!

    const的用法,特别是用在函数后面 在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const ...

随机推荐

  1. uva12532 线段树单点更新

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

  2. DNA repair问题

    问题:Biologists finally invent techniques of repairing DNA that contains segments causing kinds of inh ...

  3. POJ2411 Mondriaan's Dream

    Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, af ...

  4. [NOIP2011] 提高组 洛谷P1312 Mayan游戏

    题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...

  5. Python input()和raw_input()的区别

    当输入为数字的时候,input()获得的是数字,而后者获得的是str,可以用int(raw_input())来转换. i = input() print i+1 j = raw_input() pri ...

  6. A.2 Main

    程序的执行从类Main的方法main开始.方法main创建了一个词法分析器和一个语法分析器,然后调用语法分析器中的方法program. 1: package main: 2: import java. ...

  7. WAF绕过的技巧

    研究过国内外的waf.分享一些绝技. 一些大家都了解的技巧如:/*!*/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重新提及. 以下以Mysql为例讲述这些技 ...

  8. WINDOWS渗透与提权总结(2)

    vbs 下载者: 01 1: 02   03 echo Set sGet = createObject("ADODB.Stream") >>c:\windows\cft ...

  9. Nginx使用的php-fpm的两种进程管理方式及优化(转)

    php-fpm目前主要又两个分支,分别对应于php-5.2.x的版本和php-5.3.x的版本.在5.2.x的版本中,php-fpm.conf使用的是xml格式,而在新的5.3.x版本中,则是和php ...

  10. iOS开发摇动手势实现详解

    1.当设备摇动时,系统会算出加速计的值,并告知是否发生了摇动手势.系统只会运动开始和结束时通知你,并不会在运动发生的整个过程中始终向你报告每一次运动.例如,你快速摇动设备三次,那只会收到一个摇动事件. ...