文档章节

C++ Primer(第五版)练习12.6

LoSingSang
 LoSingSang
发布于 05/14 23:19
字数 231
阅读 18
收藏 0

编写函数,返回一个动态分配的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;
}

 

© 著作权归作者所有

共有 人打赏支持
LoSingSang
粉丝 3
博文 32
码字总数 6976
作品 0
深圳
程序员
私信 提问
《C++ primer》读后感:时代的经典

说起Lippman的C++ Primer,我总是有种特殊感情。这本书既是我进入C++领域的敲门砖,也是我第一次在网络上发表技术文章的对象。当年读书笔记中的青涩迷惘和年少轻狂都还历历在目,转眼已经从第...

凌杰_owlman
05/15
0
0
转让c++ Linux好书

转让几本书书,家里书太多了,占位置: 1、 c++ primer 第四版中文版 http://book.douban.com/subject/1767741/ 2、c++ primer 第五版英文版 http://book.douban.com/subject/24089577/ 3、计...

zhoutianzuo
2014/03/14
503
4
学习c++很迷茫,恳求大佬们能够指点一下

学习c++半年了,各式各样的视频教程。最终买了一本 c++ primer plus 第六版中文版 每天研读,有英语障碍但也一直在坚持。最近做题发现,书上基础的复习题都没有问题,编程练习也能够勉强写。...

疯狂的十一
2017/05/20
209
7
求《c++ primer 5》中文版pdf

根据历来经验, 书柜里很多书,老衲很少完整看完某一本, 即使是当年买的潘爱民翻译的《c++ primer 3》到现在都还没看完, so, 现在想找本《c++ primer 5》中文pdf 放到手机里随时、偶尔、心...

明月惊鹊
2015/06/14
8K
7
C++各阶段学习书目

1. 入门 Lippman的《Essential C++》 顾名思义,这本书是很短小精悍的。通过这本书,可以对C++的最常用和重要的特性有全面的了解,并对C++的全貌有一个概念。虽然这远远不够,但就是这样的书...

晨曦之光
2012/04/24
301
1

没有更多内容

加载失败,请刷新页面

加载更多

EOS账户如何工作,我们如何获取eos账号?

EOS账户的工作方式是什么?帐户是存储在区块链中的人类可读名称。它可以由个人或一群人拥有,具体的取决于权限配置。需要一个帐户来将交易转移或推送到区块链。——EOSIO Wiki EOS账户如何工...

笔阁
11分钟前
0
0
iOS面试之@property

https://juejin.im/post/5c105c7ce51d4562d138086f @property介绍 相信做过iOS开发的同学都使用过@property,@property翻译过来是属性。在定义一个类时,常常会有多个@property,有了@proper...

壹峰
12分钟前
0
0
[springBoot系列]--springBoot注解大全

一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加......

Jack088
26分钟前
7
0
tomcat编译超过64k大小的jsp文件报错原因

  今天遇到一个问题,首先是在tomcat中间件上跑的web项目,一个jsp文件,因为代码行数实在是太多了,更新了几个版本之后编译报错了,页面打开都是报500的错误,500的报错,知道http协议返回...

SEOwhywhy
48分钟前
5
0
flutter http 请求客户端

1、pubspec文件管理Flutter应用程序的assets(资源,如图片、package等)。 在pubspec.yaml中,通过网址“https://pub.dartlang.org/packages/http#-installing-tab-”确认版本号后,将http(0...

渣渣曦
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部