2012年12月8日

使用vector需要注意的要点

摘要: vector的元素类别T,必须具备assignable和copyable两个性质。vector的容量很重要:1. 一旦内存重新配置,和vector元素相关的所有references、pointers、iterators都会失效。2. 内存重新分配很耗时间。所以,如果程序管理了和vector元素相关的references、pointers、iterators或执行速度至关重要,就必须考虑容量问题。可以使用reserve()保留适当容量,避免一再重新分配内存。可以利用如下语句缩减容量:std::vector<T>(v).swap(v);c1 = c2:将c2的全部元素赋值给c1c.as 阅读全文

posted @ 2012-12-08 21:32 zhuyf87 阅读(1478) 评论(0) 推荐(0) 编辑

iterator迭代循环的风格问题

摘要: for (vector<int>::iterator i = v.begin(); i < v.end(); i++) { cout << *i << endl;}这个循环本身没有明显错误,存在的只是一些风格上的问题。(1)尽量做到const正确性。如果迭代器没有用来修改vector中的元素,应该改用const_iterator。(2)尽量使用“!=”而不是“<”来比较两个迭代器。因为“<”只对随机访问迭代器有效(例如,std::list的迭代器并不支持“<”),而“!=”对于任何迭代器都有效。所以应该把使用“!=”比较迭代器作为日常 阅读全文

posted @ 2012-12-08 08:51 zhuyf87 阅读(327) 评论(0) 推荐(0) 编辑

导航