c++ primer 第五版 StrBlob类(p404)
来源:互联网 发布:阿里妈妈解绑淘宝账号 编辑:程序博客网 时间:2024/06/06 10:55
Strblob.h
#include <vector>#include <string>#include <memory>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();private: std::shared_ptr<std::vector<std::string>> data; void check(size_type i, const std::string &msg) const;};
#include "StrBlob.h"#include <exception>StrBlob::StrBlob():data(std::make_shared<std::vector<std::string>>()){}StrBlob::StrBlob(std::initializer_list<std::string> il): data(std::make_shared<std::vector<std::string>>(il)){}void StrBlob::check(size_type i, const std::string &msg) const{ if(i >= data->size()) throw std::out_of_range(msg);}std::string& StrBlob::front(){ check(0, "front on empty StrBlob"); return data->front();}std::string& StrBlob::back(){ check(0, "back on empty StrBlob"); return data->back();}void StrBlob::pop_back(){ check(0, "pop_back on empty StrBlob"); return data->pop_back();}
0 0
- c++ primer 第五版 StrBlob类(p404)
- c++primer第五版第十二章12.20习题用一个StrBlobPtr打印出StrBlob中的元素
- c++primer 第五版
- C Primer Plus 第五版
- 《C++primer第五版》第一章
- c++primer(第五版)3.17
- c++primer(第五版)3.19
- c++primer(第五版)3.21
- C++Primer第五版第一章
- C++Primer第五版【笔记】——第七章 类
- C++Primer 第五版 3.类设计者的工具
- 《C++primer(第五版)》学习之路-第七章:类
- C++primer第五版笔记-第七章类
- C++ Primer : 第十二章 : 动态内存之shared_ptr类实例:StrBlob类
- C Primer Plus(第五版)中文版勘误
- (c primer plus第五版) 学习笔记
- <<C++Primer PLus 第五版>>读书笔记1
- <<C++Primer PLus 第五版>>读书笔记2
- 【一天一道LeetCode】#69. Sqrt(x)
- js 检测flash 版本
- 函数配接器
- nyoj 28 大数阶乘
- js小结:函数&变量
- c++ primer 第五版 StrBlob类(p404)
- 《java入门第一季》之tcp协议下的编程实现键盘录入数据不断地往服务器端发送数据案例
- android 优化总结
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- 构建支持registry v2的shipyard的镜像
- FZU 2168
- 第12周项目1-实现复数类中的运算符重载-3
- OAuth2.0授权方式
- 面向对象设计思想20160528