13.44 编写标准库string类的简化版本,命名String。你的类应该至少有一个默认构造函数和一个接受C风格字符串指针参数的构造函数。使用allocator为你的String类分配所需内存。13.47 添加拷贝构造函数和拷贝赋值运算符,并添加打印语句,则每次函数执行时打印一条信息。13.48 ...
分类:
其他好文 时间:
2014-08-24 16:41:22
阅读次数:
276
a=[1,2,2,3,4,5,6,8,9,0,0,0]dictc={}for i in range(len(a)): dictc[a[i]]=a.count(a[i])for key in dictc: print key,dictc[key]这段代码主要关注两点:1、字典的key是唯一...
分类:
编程语言 时间:
2014-08-24 16:41:02
阅读次数:
179
位移位运算符
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。
移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为...
分类:
其他好文 时间:
2014-08-24 14:15:02
阅读次数:
182
当C++编译器通过它的时候。如果你没有声明下列函数,体贴的编译器会声明它自己的版本。这些函数是:一个拷贝构造函数,一个赋值运算符,一个析构函数,一对取址运算符。另外,如果你没有声明任何构造函数,它也将为你声明一个缺省构造函数。所有这些函数都是公有的。换句话说,如果你这么写:class Empty{}...
分类:
编程语言 时间:
2014-08-24 14:04:52
阅读次数:
211
由于二维字符数组的第二维没有赋值运算符,即不能对整个一维数组进行赋值,因此是无法直接对二维数组用sort进行排序的,解决办法有二种:代码一: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 struct Data 7 {...
分类:
其他好文 时间:
2014-08-24 11:35:52
阅读次数:
125
逻辑运算符“与,或,非”是比较简单的一个内容。但是“与”“或”的短路却是要注意的一个问题。例子: int a=10?,b=5; ① bool result=++a>50 &&++b>1; ②?bool result=++a>5 &&++b>1; ③ bool result=...
分类:
其他好文 时间:
2014-08-23 23:05:01
阅读次数:
461
每一个表达式都有一个结果,字面值常量也是表达式,其结果就是值本身。除了特殊用法外表达式的结果是右值。是左值的情况也有,比如++i;这个表达式就是一个左值;还有逗号运算符的结果是表达式最右侧操作符德值,如果最右是一个左值的话,那整个逗号表达式就是左值。
表达式涉及到操作符和操作数,操作符有优先级规则,有结合性,还有操作数的求值顺序。就操作数的求值顺序而言,比如f1() * f2();两个函数...
分类:
编程语言 时间:
2014-08-23 17:46:11
阅读次数:
229
很久之前学习过 a=a+b 和a+=b的一些区别,进来再次回想起来,发现理解的还不透彻,所以又查资料找文件重新学习了一番。
比较这两种运算符的区别,可以有以下两个方面的比较: 执行效率和类型转换。...
分类:
编程语言 时间:
2014-08-23 16:56:31
阅读次数:
177
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实...
分类:
其他好文 时间:
2014-08-23 16:42:31
阅读次数:
252