导航

C++primer 练习12.6

Posted on 2016-04-08 01:23  CSU蛋李  阅读(151)  评论(0编辑  收藏  举报

   编写函数,返回一个动态分配的int的vector。将此vector传递给另一个函数,这个函数读取标准输入,将读入的值

保存在vector元素中。再将vector传递给另一个函数,打印读入的值。记得在恰当的时刻delete vector

 

// 12_6.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<memory>
#include<iostream>
#include<vector>
using namespace std;

//第一个函数,返回一个动态分配的int的vector
vector<int> * func1()
{   //动态分配一个int的vector,使用默认初始化,此时p指向的对象是个空的vector<int>
    auto p = new vector<int>;
    return p;
}

//第二个函数读取标准输入
vector<int>* func2()
{
    //得到第一个函数动态分配的对象
    auto p = func1();
    int i=0;
    cout << "please input your number:";
    while (cin >> i)
        p->push_back(i);
    return p;
}

//第三个函数,打印读入的值
void func3()
{
    //得到第一个函数动态分配的对象
    auto p = func2();
    for (auto beg = p->begin();beg != p->end();++beg)
        cout << *beg << " ";
    cout << endl;
    //记得释放第一个函数分配的动态内存,否则造成内存泄漏
    delete p;
}


int main()
{
    func3();
    return 0;
}