C++Primer第五版 练习12.7(解答)
2015-11-02 14:32
381 查看
练习12.7:重做上一题,这次使用shared_ptr而不是内置指针。
[code]/* *练习12.7 *2015/11/2 *问题描述: 练习12.7:重做上一题,这次使用shared_ptr而不是内置指针。 练习12.6:编写函数,返回一个动态分配的int的vector。将此vector传递给另一个函数,这个函数读取标准输入,将读入的值保存在vector元素中。再将vector 传递给另一个函数,打印读入的值。记得在恰当的时刻delete vector。 *说明:指针学习 fun(),fun2(),fun3() 分别实现三个函数的要求 ,和12.7不一样的地方在于,只能指针的内存管理不要你烦了 *作者:Nick Feng *邮箱:nickgreen23@163.com */ #include <iostream> #include <vector> #include <memory> using namespace std; /*编写函数,返回一个动态分配的int的vector。*/ shared_ptr<vector<int>> fun() { shared_ptr<vector<int>> p = make_shared<vector<int>>(); return p;//分配一个动态内存 } /*将此vector传递给另一个函数,这个函数读取标准输入,将读入的值保存在vector元素中。 */ shared_ptr<vector<int>> fun2() { shared_ptr<vector<int>> q = fun(); int val; while(cin >> val) (*q).push_back(val);//将这些数字压入到vector中 return q; } /*再将vector传递给另一个函数,打印读入的值。记得在恰当的时刻delete vector。*/ void fun3() { shared_ptr<vector<int>> r = fun2(); for(int i = 0; i != (*r).size(); ++i) cout << (*r)[i] << " ";//打印序列 cout << endl; } int main() { fun3(); return 0; }
相关文章推荐
- C++矩阵处理库--Eigen初步使用
- 黑马程序员———C语言 printf函数和scanf函数
- C++Primer第五版 练习12.6(解答)
- C++Primer第五版 12.1.2节练习
- C & C++的编译过程详解
- C++链表的分类排序
- 欢迎使用CSDN-markdown编辑器
- C++基础——函数模板
- c++ 对象内存分配和虚函数
- 《C语言程序设计》课后编程题选讲(ch1)
- C语言文件与目录(一)
- C++ STL map key是自定义结构体或类
- 高级C语言教程
- effective c++ 将成员变量声明为private
- C++的for语句详解
- c++ volatile关键字
- 详解C++中命名空间的意义和用法
- 【C/C++学院】0823-静态联合编译与动态联合编译/父类指针子类指针释放/虚函数/纯虚函数概念以及虚析构函数/抽象类与纯虚函数以及应用/虚函数原理/虚函数分层以及异质链表/类模板的概念以及应用
- C++11 标准新特性:Defaulted 和 Deleted 函数
- c语言学习之基础知识点介绍(十):内存空间模型、地址解释及指针变量