摘要:
1、vector的下标操作不会添加元素,只能针对已经存在的元素操作。2、map的下标操作具有副作用,key不存在,会在map中添加一个具有该key的新元素,新元素的value使用默认构造方法。3、为什么要这样设计? vector是基于连续内存的容器,在尾部操作效率高,使用push_back添加元素,使用下标必须保证下表存在元素。 map是基于节点的容器,元素有序。使用下标操作,第一步是查找key是否存在,map的内部实现是二叉树(AVL树或者红黑树),采用二分查找。不管是否存在key,查找key 的时候,也已经确定了key的位置。因此,如果不存在key,干脆添加一个,反正已经知道添加位置,.. 阅读全文
posted @ 2013-11-26 18:57
Andy Niu
阅读(3854)
评论(0)
推荐(0)
摘要:
1、使用场景: 强制类型转换,有可能会导致异常。is与as就是为了解决这一问题,is与as永远不会抛出异常。2、is判断一个对象是否兼容于指定的类型,考虑里氏代换。Dog是Animal,而Animal不是Dog。3、as 与强制类型转换一样,区别是使用as是安全的。使用as如果转换失败,返回Null,不会抛出异常。4、使用is和as可以取代强制类型转换,分别如下: 1 a、使用is 2 if(a is Dog) 3 { 4 Dog d = (Dog)a; 5 ... 6 } 7 8 b、使用as 9 Dog d = a as Dog;10 if(d!... 阅读全文
posted @ 2013-11-26 18:34
Andy Niu
阅读(3611)
评论(0)
推荐(0)
摘要:
代码如下,使用了递归: 1 import sys 2 currDir = sys.path[0] 3 4 import os 5 def removeFile(dir,postfix): 6 if os.path.isdir(dir): 7 for file in os.listdir(dir): 8 removeFile(dir+'/'+file,postfix) 9 else:10 if os.path.splitext(dir)[1] == postfix:11 os.remove(dir)... 阅读全文
posted @ 2013-11-26 17:54
Andy Niu
阅读(6616)
评论(2)
推荐(1)
浙公网安备 33010602011771号