#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. Jetty+json-lib库抛异常的问题解决过程(java.lang.NoClassDefFoundError: net/sf/json/JSONObject)

      一.之前抛异常是将json库改成了fastjson解决的,参见: http://www.cnblogs.com/gossip/p/5369670.html     异常信息:     二.解决步骤 ...

  2. 使用U盘安装mint

    系统坏了,重新装的时候,硬盘甚至都没法格式化...所以,狠狠心买了块固态硬盘,123G,威刚. 想自己装Linux系统,这样用起来更方便一点,不用装虚拟机,然后再跑linux什么的.最后选了mint. ...

  3. hihocoder 1196 高斯消元.二

    传送门 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回中,小Hi和小Ho趁着便利店打折,买了一大堆零食.当他们结账后,看到便利店门口还有其他的活动. 店主:买了 ...

  4. shared_ptr<> reset

    // std_tr1__memory__shared_ptr_reset.cpp // compile with: /EHsc #include <memory> #include < ...

  5. git工作量统计

    #!/bin/bash function count() { local insert=0 local delete=0 while read line ;do current=`echo $line ...

  6. object-c 的ARC 问答/介绍

    原文:http://blog.csdn.net/kmyhy/article/details/8895606 概念" Clangstatic analyzer "是一个非常有用的查找 ...

  7. C++中的异常处理(三)

    C++中的异常处理(三) 标签: c++C++异常处理 2012-11-24 23:00 1520人阅读 评论(0) 收藏 举报  分类: 编程常识(2)  版权声明:本文为博主原创文章,未经博主允许 ...

  8. Ajax技术详解

    Ajax技术:Ajax描述了一种主要使用脚本(JS)操纵HTTP的web应用架构,它的主要特点是使用脚本操纵HTTP和web服务器进行数据交换,不会导致页面重载.Ajax的核心是JS的XMLHttpR ...

  9. bc.34.B.Building Blocks(贪心)

    Building Blocks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  10. 备份还原mysql数据库

    Windows下cmd命令行中备份还原mysql数据库 先cmd 上cd  到mysql的安装bin目录下,然后再运行下面的命令. 例如:cd C:\Program Files\MySQL\MySQL ...