C++ Primer 12章习题
来源:互联网 发布:perl from json 编辑:程序博客网 时间:2024/05/21 11:27
12.1.1节练习
#include "stupidsource.h"#include <iostream>using namespace std;class StrBlob{public: typedef std::vector<std::string>::size_type size_type; StrBlob(); StrBlob(std::initializer_list<std::string> il); size_type size() const { return data->size();} bool empty() const { return data->empty(); } void push_back(const std::string &t) { data->push_back(t); } void pop_back(); std::string & front(); std::string & back(); const std::string & front() const; const std::string & back() const;private: std::shared_ptr<std::vector<std::string>> data; void check(size_type i, const std::string & msg) const;};//StrBlob::StrBlob() :data(make_shared<vector<string>>()) {}StrBlob::StrBlob() = default;StrBlob::StrBlob(initializer_list<string> il) :data(make_shared<vector<string>>(il)) {}void StrBlob::check(size_type i, const std::string & msg)const { if (i >= data->size()) throw out_of_range(msg);}string & StrBlob::front(){ check(0, "front on empty StrBlob"); return data->front();}string & StrBlob::back(){ check(0, "back on empty StrBlob"); return data->back();}const string & StrBlob::front() const{ check(0, "const front on empty StrBlob"); return data->front();}const string & StrBlob::back() const{ check(0, "const back on empty StrBlob"); return data->back();}void StrBlob::pop_back(){ check(0, "pop_back on empty StrBlob"); data->pop_back();}
12.6
#include "stupidsource.h"#include <iostream>using namespace std;vector<int> *first(){ auto p = new vector<int>(); return p;}vector<int>* second(istream &in, vector<int> * vec){ int temp; while (cin >> temp) vec->push_back(temp); return vec;}void third(vector<int> * vec){ for (const auto c : *vec) cout << c << ends; cout << endl; delete vec; vec=nullptr}int main(){ third(second(cin, first())); return 0;}
12.7
#include <iostream>#include <fstream>#include <sstream>#include <vector>#include <string>#include <memory>using namespace std;shared_ptr<vector<int>> first(){ return make_shared<vector<int>>();}void second(istream &in,shared_ptr<vector<int>> p){ int temp; if (p) while (in >> temp) p->push_back(temp);}void third(ostream &out, shared_ptr<vector<int>> p){ for (const auto c : *p) cout << c << ends; cout << endl;}int main(int argc , char* argv[]){ auto p = first(); second(cin, p); third(cout, p); return 0;}
12.23
#include "stupidsource.h"#include <iostream>using namespace std;#pragma warning(disable:4996)int main(){ string s("Hello "); string t("World"); char *stu = new char[s.length() + t.length() + 1]; strcpy(stu, (s+t).c_str()); cout << stu << endl; delete [] stu; return 0;}
阅读全文
0 0
- c++primer plus 第12章习题
- c++primer第二章习题
- C++primer 第二章习题
- C++Primer第三章习题
- C++Primer第五章习题
- c++primer 第十章习题
- C++primer第二章习题
- C++Primer习题第四章
- C++primer习题第五章
- C++Primer习题第六章
- C++Primer习题第七章
- C++primer习题第八章
- C++Primer习题第九章
- C++Primer习题第十一章
- C++Primer习题第十二章
- C++Primer习题第十三章
- C++Primer习题第十四章
- C++Primer习题第十五章
- 每天一道LeetCode-----逆序链表
- leetcode 4 Median of Two Sorted Arrays(有坑待填)
- Spring Boot---(2)Spring Boot 配置文件详解
- Python3+OpenCV学习笔记(一):图像加载、显示和保存
- opencv3/C++图像边缘提取
- C++ Primer 12章习题
- Hibernate框架笔记整理--二
- androidstudio打包失败
- Leetcode——第136题——Single Number
- Python format 格式化函数 转载菜鸟教程
- Java学习14:多线程
- 类中的函数重载
- 南阳oj 回文字符串
- SpringMVC实现图片上传