• STL中容器的push()或者push_back()函数的一点说明


    在STL的queue 或者 vector、list等容器适配器或者容器中,会经常用到的函数就是push()或者push_back()函数,但是有一点需要明确的是:

    在使用这些函数对容器/适配器对象增加新元素的时候,实际上是对原有的元素对象复制重新新建了一个元素对象作为元素压入到容器/适配器对象中。

    例如:

    #include<queue>
    #include<iostream>
    using space std;
    
    typedef struct TreeNode{
          int a;
          float b;
    }TNode;
    
    int main()
    {
        queue<TNode> allNodes;
        TNode origin;
         origin.a =1;
         origin.b =2.2;
         allNodes.push(origin);
         allNodes.front().a=4;
         allNodes.front().b=5.5;
         cout<<origin.a<<", "<<origin.b<<endl;
    }
    

     实验测试会发现,此时origin内的值并不会发生改变。

    如果想对原来的origin的值进行同步修改,可以讲队列声明为元素为指针类型的队列:

    queue<TNode*> allNodes;
    
  • 相关阅读:
    PHP curl_exec函数
    PHP curl_escape函数
    PHP curl_error函数
    PHP curl_errno函数
    PHP curl_copy_handle函数
    PHP curl_close函数
    PHP 利用 curl 发送 post get del put patch 请求
    PHP cURL 函数
    PHP 实例
    PHP 实例
  • 原文地址:https://www.cnblogs.com/jiayouwyhit/p/3698513.html
Copyright © 2020-2023  润新知