国外购物网站哪个最好,扫一扫查价格,wp网站建设教程,江苏网站建设平台STL是c非常重要的一部分#xff0c;它是很多大神的杰作#xff0c;高效#xff0c;稳定#xff0c;可扩展性好#xff0c;虽然STL确实存在难以调试#xff0c;内存碎片的问题#xff08;现在机器的内存越来越大#xff0c;内存碎片的问题基本不太可能成为系统瓶颈… STL是c非常重要的一部分它是很多大神的杰作高效稳定可扩展性好虽然STL确实存在难以调试内存碎片的问题现在机器的内存越来越大内存碎片的问题基本不太可能成为系统瓶颈但只要你使用恰当它能显著提高生产力并使代码更短更易维护。 而在工程中如果不养成好的使用习惯也容易造成一些问题 而自己在工程实践中总结了一些建议 1. vector, map, set, list, queue, dequeue, stack 等容器存放的对象必须是可拷贝的尤其注意深拷贝的情况必须自己重载拷贝构造函数和号 最后对象仅仅只有数据成员且数据成员没有指针。 2. vector, map, set, list, queue, dequeue, stack 等容器存放的对象最好不要是指针因为多线程环境对指针操作非常危险也容易造成内存泄漏的问题即使存放指针最好使用智能指针。 3. 定义容器对象最好在栈空间定义。 4. 尽量不定义全局的容器对象即使要使用全局的容器最好使用全局指针并在某函数内new一个。 5.在栈空间最好定义容器对象而不是使用容器指针容器对象可以自动析构。 6.map的key最好是整形或者是string, 最好不要是指针类型能不自己重载函数对象或者小于号的就不要去重载使用默认的。 7.set最好存单一数据类型整形或者string, 如果是复杂数据可以使用map替代会更加清晰。 8.判断一个容器是否为空适应empty() 而不是 size() 0。 9.vector在预知大致范围时候尽量先reserve, 这样可以在很多时候大大提高程序效率。 10.能用string的尽量不用char数组除非一些特定需要和性能要求极高的情况。 11.能用STL的sort, partial_sort, 等标准算法的尽量用STL算法。 12.多线程操作容器时尽量使用容器指针而不是容器对象对容器操作对指针加锁。 13.最好使用容器引用作为函数参数减少拷贝。 14.尽量使用标准STL容器除非特殊情况使用hash_map等扩展容器。 15.在重载函数对象operator()和号时最好内联。