【C++】istream& / ostream& 作为参数和返回类型

istream& read(istream& is, vector<int>& vec) ; // 从标准输入读取并写入

ostream& print(ostream& os, vector<int> vec); // 打印 vector 数据

将常用输出 / 输出流作为函数的参数和返回类型

  • 编写代码实现向 vector 容器中从标准输入写入数据,然后再输出数据。先看常规版本:
#include <iostream>
#include <vector>
using namespace std;

int main () 
{
    vector<int> vec;
    cout << "please enter nums: " << endl;
    int temp;
    while (cin >> temp) 			// 读取数据
        vec.push_back(temp);
    for (int i = 0; i < vec.size(); i++)	// 打印数据
        cout << vec[i] << " ";
        
    cout << "\nEnd print!" << endl;
    return 0;
}
  • 下面是定义两个函数来实现,分别用 输入输出流的引用作为参数和返回类型
// 此处vector容器参数声明为引用类型,因为要实现从标准输入读取并写入数据到vector
istream& read(istream& is, vector<int>& vec) {
    cout << "please enter nums: " << endl;
    int temp;
    while (is >> temp) 
        vec.push_back(temp);
    return is;
}
// 打印函数的容器参数定义为非引用,仅是查看数据并打印
ostream& print(ostream& os, vector<int> vec) {
    for (int i = 0; i < vec.size(); i++) 
        os << vec[i] << " ";
    cout << "\nEnd print!" << endl;
    return os;
}

int main () 
{
    vector<int> vec1;
    read(cin, vec1);        // 输入数据元素
    print(cout, vec1);      // 输出

    return 0;
}
  • 运行结果
    在这里插入图片描述
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值