zoukankan      html  css  js  c++  java
  • STL笔记之【map之添加元素】

    //---------------------------------------------------------
    // 向map中插入元素的方法比较
    //---------------------------------------------------------
    class A
    {
    public:
     A()
     {
      cout << "A()" << endl;
     }

     A(const A& rhs)
     {
      cout << "A(const A&)" << endl;
     }

     ~A()
     {
      cout << "~A()" << endl;
     }
    };

    map<int, A> mapTest;

    //*****************
    // 方法一
    //*****************
    mapTest.insert(map<int, A>::value_type(0, a));
    输出:(3次构造函数)
    A()
    A(const A&)
    A(const A&)
    ~A()
    ~A()
    ~A()

    //*****************
    // 方法二
    //*****************
    mapTest.insert(pair<const int, A>(0, a));
    输出:(3次构造函数)
    A()
    A(const A&)
    A(const A&)
    ~A()
    ~A()
    ~A()

    //*****************
    // 方法三
    //*****************
    mapTest.insert(pair<int, A>(0, a));
    输出:(4次构造函数)
    A()
    A(const A&)
    A(const A&)
    A(const A&)
    ~A()
    ~A()
    ~A()
    ~A()

    //*****************
    // 方法四
    //*****************
    mapTest[0] = a;
    输出:(4次构造函数,实际上还调用了一次operator=)
    A()
    A()
    A(const A&)
    A(const A&)
    ~A()
    ~A()
    ~A()
    ~A()

    //*****************
    // 方法五
    //*****************
    mapTest.insert(make_pair(0, a));
    输出:(5次构造函数)
    A()
    A(const A&)
    A(const A&)
    A(const A&)
    A(const A&)
    ~A()
    ~A()
    ~A()
    ~A()
    ~A()

    //---------------------------------------------------------
    // 总结
    //---------------------------------------------------------
    很显然,方法一、二是最优的,成本最少。
            方法五是最差的,成本最高。

  • 相关阅读:
    Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容
    让Scrapy的Spider更通用
    API例子:用Python驱动Firefox采集网页数据
    API例子:用Java/JavaScript下载内容提取器
    Python即时网络爬虫:API说明
    Python: xml转json
    git 更新本地代码
    数据库事务
    Python的线程、进程和协程
    Java基础语法
  • 原文地址:https://www.cnblogs.com/Hisin/p/3152936.html
Copyright © 2011-2022 走看看