《C++标准程序库》学习备忘

巨细靡遗·井然有序(侯捷译序)
孟岩译序
目录
前言
致谢
1.关于本书
2.C++及其标准程序库简介
3.一般概念
4.通用工具
5.Standard Template Library(STL,标准模板库)
6.STL容器(STL Container)
7.STL 迭代器(STL Iterators)
8.STL 仿函数(functors)(又名函数对象,function objects)
9.STL算法(STL Algorithms)
10.特殊容器(Special Containers)
11.Strings(字符串)
12.数值(Numerics)
13.以Stream Classes 完成输入输出
14.国际化(Internationalization,i18n)
15.空间配置器(Allocator)
网络上的资源
参考书目
索引

【14 国际化】

47.11德国人写成47,11,一百万尼泊尔人写成10.00.000,这涉及国际化:语言.地区.编码
(1)cin.imbue(locale::classic());将C local赋给cin
(2)locale loc("")//得到环境local
(3)P700改动全局local,将影响C函数,和新建对象,不能影响已经创建的cin之流
(4)用cin.getloc()得到的locale对象,可以用于全局函数P719,进行基本测试。直接用facet函数更快


【11 string专题】
例子:改后缀、逆向单词、P497大小写转换忽略,reverse,sort,unique,uniquecopy,isspace

  1. string::npos只能与string::size_type比较。因为前者不一定总是-1。
  2. string类似vector<char>,但前者以整个容器为优化对象
  3. 源对象:string(允许中间一段:inx+len,或b+e)、char[](从头指定一段,/0也是普通字符)、c-string(照单全收,遇/0自动结束)、单字符、若干字符。
  4. swap()常速速度取代'='!c-string含/0,string不含,数组视/0普通!at()取值优先使用[]!"aa"是c-string,也是字符数组。
  5. max_size()指理论容量,capacity()指当前容量,size()=length()指字符个数,reserve()调整容量(强扩弱缩),resize()强制扩充字符,erase()包含clear()的全删功能
  6. assign()就是'=',append()就是'+=',pushback('c')为STL算法,就是无r的append('c'),insert(),replace()
  7. find(),efind()找字串,find_first/last_of(),find_first/last_not_of(),找字符
  8. substr()可以返回副本!,getline()从istream中一直读直到(/n,delim)
  9. 空串的end()/rend()就是begin()/rbegin(),+,<<,>>,allocator_type,get_allocator()
  10. comparison()像全局函数比较2个外串,compare比较自己,_c_str(),data()返回内部数据,copy()赋值到buf
  11. 字典顺序比较就是:按ascii逐一比较直到比出胜负,多为大。
  12. 用s.insert((std::string::size_type)0,1,' ')避免insert(0,1' ')歧义
  13. 不要用null代替char*,

【13 stream】

  1.  主要istream、ostream管读写
  2. 4个全局stream对象:cin、cout、cerr、clog
  3. ofstream(c_str)、?file、file<<、自动管理文件关闭。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值