2013年11月5日
摘要: 容器的end()方法,返回一个迭代器,需要注意:这个迭代器不指向实际的元素,而是表示末端元素的下一个元素,这个迭代器起一个哨兵的作用,表示已经处理完所有的元素。因此,在查找的时候,返回的迭代器,不等于end(),说明找到了目标。等于end(),说明检查了所有元素,没有找到目标。 阅读全文
posted @ 2013-11-05 21:07 Andy Niu 阅读(1002) 评论(0) 推荐(0)
摘要: 1、在map中,由key查找value时,首先要判断map中是否包含key。2、如果不检查,直接返回map[key],可能会出现意想不到的行为。如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能返回null。3、map提供了两种方式,查看是否包含key,m.count(key),m.find(key)。4、m.count(key):由于map不包含重复的key,因此m.count(key)取值为0,或者1,表示是否包含。5、m.find(key):返回迭代器, 阅读全文
posted @ 2013-11-05 20:58 Andy Niu 阅读(72470) 评论(0) 推荐(3)
摘要: 考虑下面的需求,对vector中的每个元素加1,如何做?1 void add(int& lhs) // 注意:要修改主调方法中的数据,这里要使用引用2 {3 lhs= lhs + 1;4 }5 int intArray[] = {1,2,3,4,5};6 vector intVector(intArray,intArray+5);1、最原始的做法:1 for(vector::iterator iter=intVector.begin();iter!=intVector.end();iter++)2 {3 add(*iter);4 }2、使用类似b... 阅读全文
posted @ 2013-11-05 20:00 Andy Niu 阅读(59712) 评论(0) 推荐(1)