![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Exceptional C++
ba_jie
这个作者很懒,什么都没留下…
展开
-
Item 2-3 大小写不敏感的string
实现一个“大小写不敏感”的string类:ci_string s( "AbCdE" );assert( s == "abcde" ); // 1. 大小写不敏感assert( s == "ABCDE" ); // 1. 大小写不敏感assert( strcmp( s.c_str(), "AbCdE" ) == 0 ); // 2. 保留大小写状态assert( strcmp(翻译 2011-06-09 14:25:00 · 1330 阅读 · 0 评论 -
Item 4-5 通用容器的设计
给下面的容器添加几个拷贝构造函数和赋值函数:template class fixed_vector{public: typedef T* iterator; typedef const T* const_iterator; iterator begin() { return v_; } iterator end()翻译 2011-06-09 14:28:00 · 494 阅读 · 0 评论 -
Item 1 Iterators
class Date{public: Date(const char* date = "jxd"); Date(const Date& date); Date operator()(const char* date); Date& operator=(const Date& date); ~Date(); friend bool operator==(const D原创 2011-06-09 14:23:00 · 506 阅读 · 0 评论 -
Item 8 异常安全的ctor和dtor
根据下面的声明,写出实现的代码,要求达到异常安全或异常中立。这意味着即使发生了异常,Stack对象也要处于正确统一的状态。异常要被传递给调用者,让调用者根据上下文处理异常。template class Stack {public: Stack(); ~Stack(); /*...*/private: T* v_; // 栈的缓冲区 size翻译 2011-06-12 14:16:00 · 1545 阅读 · 0 评论 -
Item 6-7 重用标准库
下面的函数定义产生了三个临时对象,其实是可以省略掉的:string FindAddr( list emps, string name ){ for( list::iterator i = emps.begin(); i != emps.end(); i++ ) { if( *i == name ) { return i->addr;翻译 2011-06-12 14:13:00 · 570 阅读 · 0 评论