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