当前位置: 首页 > news >正文

泛微e8做网站门户查网址

泛微e8做网站门户,查网址,网络系统集成,知乎 拒绝 朋友 做网站C Primer&#xff08;第5版&#xff09; 练习 16.29 练习 16.29 修改你的Blob类&#xff0c;用你自己的shared_ptr代替标准库中的版本。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 template <typename> class BlobP…

C++ Primer(第5版) 练习 16.29

练习 16.29 修改你的Blob类,用你自己的shared_ptr代替标准库中的版本。

环境:Linux Ubuntu(云服务器)
工具:vim

 

代码块
template <typename> class BlobPtr;
template <typename> class Blob;
template <typename T> bool operator==(const Blob<T>&, const Blob<T>&);template <typename T>class Blob {friend class BlobPtr<T>;friend bool operator==<T>(const Blob<T>&, const Blob<T>&);public:typedef T value_type;typedef typename std::vector<T>::size_type size_type;Blob();Blob(std::initializer_list<T> il);size_type size() const { return data->size(); }bool empty() const { return data->empty(); }void push_back(const T& t) { data->push_back(t); }void push_back(T&& t) { data->push_back(std::move(t)); }void pop_back();T& back();T& operator[](size_type i);private:SharedPtr<std::vector<T>> data;void check(size_type i, const std::string& msg) const;
};template <typename T> void Blob<T>::check(size_type i, const std::string& msg) const {if (i >= data->size()) {throw std::out_of_range(msg);}
}template <typename T> T& Blob<T>::back() {check(0, "back on empty Blob");return data->back();
}template <typename T> T& Blob<T>::operator[](size_type i) {check(i, "subscript out of range");return (*data)[i];
}template <typename T> void Blob<T>::pop_back() {check(0, "pop_back on empty Blob");data->pop_back();
}template <typename T> Blob<T>::Blob() : data(SharedPtr<std::vector<T>>(new std::vector<T>())) {}template <typename T> Blob<T>::Blob(std::initializer_list<T> il): data(SharedPtr<std::vector<T>>(new std::vector<T>(il))) {}template <typename T> class BlobPtr {public:BlobPtr() : curr(0) {}BlobPtr(Blob<T>& a, size_t sz = 0) : wptr(a.data), curr(sz) {}T& operator*() const {auto p = check(curr, "dereference past end");return (*p)[curr];}BlobPtr& operator++();BlobPtr& operator--();private:std::size_t curr;WeakPtr<std::vector<T>> wptr;SharedPtr<std::vector<T>> check(std::size_t, const std::string&) const;
};template <typename T> SharedPtr<std::vector<T>> BlobPtr<T>::check(std::size_t i, const std::string& msg) const {auto ret = wptr.lock();if (!ret) {throw std::runtime_error("unbound BlobPtr");}if (i >= ret->size()) {throw std::out_of_range(msg);}return ret;
}template <typename T> BlobPtr<T>& BlobPtr<T>::operator++() {check(curr, "increment past end of BlobPtr");++curr;return *this;
}template <typename T> BlobPtr<T>& BlobPtr<T>::operator--() {--curr;check(curr, "decrement past begin of BlobPtr");return *this;
}
http://www.khdw.cn/news/42597.html

相关文章:

  • 建工网和环球网哪个好seo网络营销技巧
  • 链天网站建设重庆网页搜索排名提升
  • 阿里云服务器在哪里百度seo排名点击软件
  • 男的和女的做那种事情网站线上营销活动有哪些
  • 阿里云做视频网站可以吗免费网络营销平台
  • 金华网站建设团队优化大师win7
  • 自己建立公司网站的步骤谷歌 chrome 浏览器
  • 湖州网站建设服务公司网上的推广公司
  • seo营销推广费用网站优化外包
  • 云南网站建设选天软网站如何进行优化
  • 东莞网站建设服务百度seo指南
  • 自己建设论坛网站电脑优化大师下载安装
  • 豆角网是哪个网站开发的职业技能培训学校
  • 建设电影网站难吗跨境电商平台哪个最好最可靠
  • 有哪些学校的网站做的好处网站seo 优化
  • 网站打开速度影响因素2022年新闻热点事件
  • 成都plc培训机构哪家最好太原seo关键词优化
  • 珠海网站建设企业友情链接购买
  • 网站类型定位酒店如何进行网络营销
  • 龙之向导外贸网站怎么样重庆seo优化公司
  • 凤岗网站设计网址域名查询
  • 搜索品牌价值的网站如何做网址
  • Wordpress网站防止采集长沙官网seo分析
  • 网站怎么做口碑网络培训seo
  • 做c2b的网站百度百度网址大全
  • 做外贸如何访问国外网站广告行业怎么找客户
  • 公司网站海报怎么做315影视行业
  • 建设银行官方投诉网站百度地图推广
  • 广东建设安全协会网站软件推广平台有哪些?哪个比较好
  • web前端开发电子书seo排名如何优化