#include #include #include #include #include #include "pics.h" using std::cout; using std::copy; using std::endl; using std::ostream_iterator; using std::string; using std::vector; int main() { vector p; p.push_back("this is an"); p.push_back("example"); p.push_back("to"); p.push_back("illustrate"); p.push_back("framing"); ostream_iteratorofile(cout, "\n"); copy(p.begin(), p.end(), ofile); cout << endl; vector f = frame(p); copy(f.begin(), f.end(), ofile); cout << endl; vector h = hcat(p,frame(p)); copy(h.begin(), h.end(), ofile); cout << endl; return 0; } #include // 引入标准算法库(用于std::copy等算法) #include // 引入标准输入输出流库 #include // 引入迭代器库(用于std::ostream_iterator) #include // 引入字符串库 #include // 引入动态数组(vector)容器库 #include "pics.h" // 引入自定义头文件,提供frame和hcat函数的声明 using std::cout; // 引入标准输出对象 using std::copy; // 引入标准拷贝算法 using std::endl; // 引入标准换行符 using std::ostream_iterator; // 引入输出流迭代器 using std::string; // 引入标准字符串类 using std::vector; // 引入标准向量类 int main() { // 定义一个存储字符串的vector,并向其中添加多行字符串 vector p; p.push_back("this is an"); // 添加字符串到vector p.push_back("example"); p.push_back("to"); p.push_back("illustrate"); p.push_back("framing"); // 定义输出流迭代器,用于将vector内容输出到标准输出 ostream_iterator ofile(cout, "\n"); // 输出vector p的内容到终端 copy(p.begin(), p.end(), ofile); cout << endl; // 输出一个空行分隔内容 // 调用frame函数为vector p添加边框,并返回新vector vector f = frame(p); // 输出带边框的vector内容 copy(f.begin(), f.end(), ofile); cout << endl; // 输出一个空行分隔内容 // 调用hcat函数,将原始vector p与带边框的vector f水平连接 vector h = hcat(p, frame(p)); // 输出水平连接后的vector内容 copy(h.begin(), h.end(), ofile); cout << endl; // 输出一个空行分隔内容 return 0; // 程序结束 }