C++ primer 第五版 中文版 练习 12.6
题目:编写函数,返回一个动态分配的int的vector。将此vector传递给另一个函数,这个函数读取标准输入,将读入的值保存在vector元素中。
再将vector传递给另外一个函数,打印读入的值。记得在恰当的时刻delete vector。
答:
#include <iostream>
#include <new>
#include <vector>
using namespace std;
//返回一个动态分配的int的vector。
vector<int> * refun()
{
return new vector<int>;
}
//读取标准输入的值,保存到vector<int>。
void readvalue(vector<int>* pv)
{
int tmpi;
while (cin>>tmpi)
pv->push_back(tmpi);
}
//打印vector内元素的值。
void printvalue(vector<int>* pv)
{
for (auto w : *pv)
cout << w << " ";
delete pv; //删除动态分配内存。
pv = nullptr; //赋予空值。
}
int main()
{
vector<int> *pv = refun();
readvalue(pv);
printvalue(pv);
return 0;
}