设为首页 加入收藏

TOP

string实现(三)
2017-06-17 10:22:32 】 浏览:410
Tags:string 实现
operator[](size_t pos) noexcept(false) { return const_cast ((static_cast (this))->operator[](pos)); } const char &UbuntuString::back() const noexcept(false) { if(size() == 0) throw std::out_of_range("string is empty"); return _ps[size() - 1]; } char &UbuntuString::back() noexcept(false) { return const_cast ((static_cast (this))->back()); } size_t UbuntuString::find_first_of(char c) const noexcept { if(empty()) return nopos; //可以用strchr,这里还是自己实现 char *ptemp = _ps; while(*ptemp != 0 && *ptemp != c) ptemp++; if(*ptemp) return ptemp - _ps; return nopos; } UbuntuString::UbuntuString(const char *ps,size_t size) noexcept(false) { if(ps == NULL || *ps == 0) _ps = 0; _ps = newSH(ps,size); } const char *UbuntuString::c_str() const noexcept { return _ps; } UbuntuString UbuntuString::substr(size_t pos,size_t len) const noexcept(false) { if(len == 0 || pos >= size() ) return UbuntuString(); return UbuntuString(_ps + pos,(len > (size() - pos))?(size() - pos):len); } //可以和任意支持c_str的StringInterface的实现比较 int UbuntuString::compare(const StringInterface &si) const noexcept { return strcmp(_ps,si.c_str(); } UbuntuString::UbuntuString(const UbuntuString &us) noexcept(false) { } }

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇丑数与非丑数 下一篇C++跨文件共享全局变量

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目