zoukankan      html  css  js  c++  java
  • 动态内存

    vector<int> * gen_vector(const size_t &size) {
        return new vector<int>(size, 0);
    }
    
    void get_data((vector<int> *ptr) {
        auto iter = ptr->begin();
        while(cin>>*iter++ && iter != ptr->end());
    }
    
    void display_data(vector<int> *ptr) {
        for(const auto &v : *ptr) {
            cout<<v<<" ";
        }
        cout<<endl;
        delete ptr;
    }
    
    
    auto ptr = gen_vector(10);
    get_data(ptr);
    display_data(ptr);

    在写get_data的时候犯了一个错误,代码如下

    void get_data((vector<int> *ptr) {
        auto vec = *ptr;                          // 这里拷贝了一份ptr指向的vector,所以下面iter访问的是拷贝vector的空间
        auto iter = vec.begin();                  // 而不是ptr指向的空间。
        while(cin>>*iter++ && iter != vec.end());
    }

    shared_ptr版本

    shared_ptr<vector<int>> gen_vector(const size_t &size) {
        return make_shared<vector<int>>(size, 0);
    }
    
    void get_data(shared_ptr<vector<int>> ptr) {
        auto iter = ptr->begin();
        while(cin>>*iter++ && iter != vec->end());
    }
    
    void display_data(shared_ptr<vector<int>> ptr) {
        for(const auto &v : *ptr) {
            cout<<v<<" ";
        }
        cout<<endl;
    }
    
    
    auto ptr = gen_vector(10);
    get_data(ptr);
    display_data(ptr);
  • 相关阅读:
    如何理解cat的输入输出重定向
    Vagrant网络设置
    Vagrant入门
    设计模式的原则
    单例模式
    LRU 实现缓存
    java注解
    java8---lambda表达式
    JUC--Callable 以及Lock同步锁
    JUC--闭锁 CountDownLatch
  • 原文地址:https://www.cnblogs.com/yuandonghua/p/11447024.html
Copyright © 2011-2022 走看看