new的例子

12.6 编写函数,返回一个动态分配的int的vector。将此vector传递给另一个函数,这个函数读取标准输入,将读入的值保存在vector元素中。再将vector传递给另一个函数,打印读入的值。记得在恰当的时刻delete vector。

#include<iostream>
#include<new>
#include<vector>
using namespace std;
vector<int>* f1()
{
    vector<int> *p=new vector<int>;
    return p;
}

vector<int>* f2()
{
    vector<int> *p=f1();
    int n;
    while(cin>>n)
        p->push_back(n);
    return p;
}

int main()
{
    vector<int> *p=f2();
    for(auto v:*p)
        cout<<v<<" ";
    delete p;
    return 0;
}

12.7 使用shared_ptr而不是内置指针。

#include<iostream>
#include<vector>
#include<memory>
using namespace std;
shared_ptr<vector<int>> f1()
{
    shared_ptr<vector<int>> p=make_shared<vector<int>>();
    return p;
}

shared_ptr<vector<int>> f2()
{
    shared_ptr<vector<int>> p=f1();
    int n;
    while(cin>>n)
        p->push_back(n);
    return p;
}

int main()
{
    shared_ptr<vector<int>> p=f2();
    for(auto v:*p)
        cout<<v<<" ";
    return 0;
}
原文地址:https://www.cnblogs.com/wuchanming/p/3922406.html