摘要:
C++类型转换运算符(TypeConversionOperators)1.static_cast将一个值以合逻辑的方式转换。着可以看做是"利用原值重新构造一个临时对象,并在设立初值的时候使用类别转换"。唯有当上述的类型转换有所定义,整个转换才会成功。所谓的"有所定义",可以是语言内建规则,也可以是程序员自定的转换动作。eg:#include <iostream>using namespace std;int main(){ float f = 100.555; cout << static_cast<int>(f)&l 阅读全文
摘要:
今天我对这段代码产生了质疑:operatordouble(){returnstatic_cast<double>(sum)/static_cast<double>(num);}我感觉应该是这样:doubleoperatordouble(){returnstatic_cast<double>(sum)/static_cast<double>(num);}于是我就在csdn上发了一个贴问了问,经过zhangweiit,mstlq,djjlove_2008,taodm(非常感谢他们)的指点后明白了这是C++的语法规则,我居然不知道。于是我翻开了久违了的 阅读全文
摘要:
C++错误:\Page499\main.cpp|15|error:nomatchingfunctionforcallto'transform(__gnu_cxx::__normal_iterator<char*,std::basic_string<char,std::char_traits<char>,std::allocator<char>>>,__gnu_cxx::__normal_iterator<char*,std::basic_string<char,std::char_traits<char>,std: 阅读全文
摘要:
strings存在三种“大小”:1、size()和length() 返回string中现在的字符个数。上述两个函数等效。成员函数empty()用来检验字符数是否为0,亦即字符串是否为空。你应该优先使用该函数,因为它比length()或size()来得快。也就是说,使用if(s.empty()==true)而不使用if(s.size()==0)(笔者注)2、max_size() 此函数返回一个string最多能够包含的字符数。一个string通常包含一块单独内存区块内的所有字符,所以可能跟PC机器本省的限制有关系。返回值一般而言是索引型别的最大值减1。之所以“减1”有两个原因:(a)最大值本身是 阅读全文
摘要:
allocator::rebind 看侯捷先生的《STL源码剖析》,第二章将空间配置器中提到allocator::rebind,不知所云。查了一下MSDN,才略懂一些,摘到此。allocator::rebind功能:A structure that enables an allocator for objects of one type to allocate storage for object... 阅读全文