首页 > 代码库 > new的例子

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;}