zoukankan      html  css  js  c++  java
  • map使用笔记

     先上代码

     1 class T 
     2 {
     3 public:
     4     T()
     5         : _nval(20)
     6     {
     7         std::cout << "T::T()... 
    ";
     8     }
     9     ~T()
    10     {
    11         std::cout << "T::~T()...
    ";
    12     }
    13 
    14     int val() const 
    15     {
    16         return _nval;
    17     }
    18 
    19 private:
    20     int _nval;
    21 };
    22 
    23 void test_map()
    24 {
    25     std::map<int ,T> key2val_mp;
    26     
    27     T t ;
    28     t = key2val_mp[2];
    29 
    30     std::map<int, T>::const_iterator it = key2val_mp.begin();
    31 
    32     for (it ; it != key2val_mp.end(); ++it)
    33     {
    34         std::cout << "it->first = " << it->first << "	" << "it->second.val() = " << it->second.val() << std::endl;
    35     }
    36     
    37     std::cout << "Finished...
    ";
    38     
    39 }
    40 
    41 int main(int argc, char* argv[])
    42 {
    43     test_map();
    44 
    45     return 0;
    46 }

    运行结果如下:

    由上面的结果我们发现在test_map()函数中发生了两次构造,我们知道第一次构造是在:T  t;处

    那么第二次的构造就应该是在  t = key2val_mp[2]处了,由此我们可以得出结论key2val_mp[2]返回了一个临时对象;

  • 相关阅读:
    Collection LinkedList
    java 浅拷贝和深拷贝
    Collection ArrayList
    Java 集合
    Activity、Fragment、Service、View生命周期
    Android 事件分发机制
    retrofit2.0
    Android 知识图谱
    设计模式-代理模式
    多线程-lock
  • 原文地址:https://www.cnblogs.com/guoliushui/p/9487598.html
Copyright © 2011-2022 走看看