C++ Tips系列
文章平均质量分 84
aflyinghorse
Hello!
展开
-
C++ Tips: 标准库概览
3.1 不要像重新发明车轮那样企图做每件事,去使用库。>包含了关于如何使用STL的很多宝贵建议。如Item 13解释了为什么vector和string优先于动态的数组。Item 43解释了算法调用优先于手写循环。还有关于关联容器,函数对象,迭代器的用法和注意事项。用STL写程序时可以作为参考。 3.2 不要相信奇迹,要理解你的库能做什么,它们如何做,它们做时需要多大的代价。原创 2006-12-12 09:26:00 · 1188 阅读 · 0 评论 -
C++ Tips: 类型和声明
4.1 保持较小的作用域。 保持较小的作用域有助于避免一些难以发现的错误。C++支持在for循环和if语句中直接声明变量,如:for (int i=0; iif (bool b = func() ) {}其中i和b的作用域从被声明的点开始,直到 } 结束。 4.2 不要在一个作用域和它外围的作用域里采用同样的名字。在一个作用域和它外围的作用域里采用同样原创 2007-01-18 14:57:00 · 1256 阅读 · 1 评论 -
C++ Tips: 指针、数组和结构
5.1 避免非平凡的指针算术。复杂的指针算术通常不必要,最好避免。原因是可能导致未定义的结果。两个指针指向同一个数组的元素时,指针相减才有意义。指针加上或者减去一个整数,得到的结果还是一个指针,如果这个值不指向原来指针指向的数组的元素,那么使用这个值得结果就是无定义的。指针相加没有意义,因此不被允许。 5.2 当心,不要超出数组的界线去写。使用数组时总是应该对数组越界保持警觉。一旦原创 2007-04-30 16:06:00 · 1107 阅读 · 0 评论 -
VS2008 到 VS2010 STL关联容器set 的一点变化
<br /><br />VS2008 到 VS2010 STL关联容器set 的一点变化<br />最近在把项目从vs2008移植vs2010的时候, 发现在vs2008下编译通过的代码却在vs2010编译时出现错误。下面是代码的一个简化的示例:<br />vector<int> v(10, 1);<br />set<int> s(v.begin(), v.end());<br /> <br />set<int>::iterator i = s.begin();<br />(*i) = 0; //原创 2010-11-21 00:42:00 · 2917 阅读 · 0 评论