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;
}
- 运行结果