2019独角兽企业重金招聘Python工程师标准>>>
编写函数,返回一个动态分配的int的vertor。将此vector传递给另一个函数,这个函数读取标准输入,将读入的值保存在vector元素中。再将vector传递给另一个函数,打印读入的值。记得在恰当的时刻delete vector。
#include <iostream>
#include <vector>
using namespace std;void fun2(istream &cin,vector<int> *v){int i;while (cin>>i){v->push_back(i);}
}void fun3(vector<int> *v){for (auto i=(*v).begin();i!=(*v).end();++i){cout<<*i<<endl;}
}vector<int>* fun1(){auto *v = new vector<int>;fun2(cin,v);fun3(v);return v;
}int main(){auto ptr = fun1();delete ptr;return 0;
}
代码:https://gitee.com/feistel/codes/uw43p6xy9t7aghcfndzro90
练习12.7,改用用shared_ptr。代码如下:
#include <iostream>
#include <vector>
#include <memory>
using namespace std;void fun2(istream &cin,shared_ptr<vector<int>> v){int i;while (cin>>i){v->push_back(i);}
}void fun3(shared_ptr<vector<int>> v){for (auto i=(*v).begin();i!=(*v).end();++i){cout<<*i<<endl;}
}shared_ptr<vector<int>> fun1(){shared_ptr<vector<int>> v = make_shared<vector<int>>();fun2(cin,v);fun3(v);return v;
}int main(){fun1();return 0;
}