C++
sujw
前人挖坑,后人填土
展开
-
gdb C++程序coredump不显示行号问题
编译程序的时候加上-g就可以了编译出来的程序会大不少,然后再去gdb就能显示行号了,直接能定位到具体那一行导致的程序coredump原创 2016-10-24 14:28:53 · 8052 阅读 · 0 评论 -
C++ map容器 注意事项
map 是c++中的关联容器,提供很好的一对一的关系。C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值;增加和删除节点对迭代器的影响很小;对于迭代器来说,可以修改实值,而不能修改key;查找的时间很少,基本是log(N)一、map的说明 1 头文件 #include 2原创 2016-11-26 19:40:35 · 834 阅读 · 0 评论 -
C++技术问题总结map、vector、list、deque各自的使用场合
map是关联式的,vector、list、deque是序列式的。map:底层机制RB-tree(红黑树),元素自动排序,键值对。vector:操作方式与array相似,动态空间增长。是连续性空间,支持随机访问。 优点:? 内存动态增长,不需要指定内存大小。? 支持随机访问,即支持[]和vector.at()。 缺点:? 在内部进行插入删除操作效率低。转载 2016-11-26 19:56:15 · 1881 阅读 · 0 评论 -
socket中的select 、 poll、epoll的区别
select等等这几种方式不会堵塞,不论连接还是不连接都有结果返回,并且根据结果的不同来选择不同的处理方式,所以这样效率会更高。poll 与select类似,但是select监控的最大文件描述符数量是有限制的,所以我们一般选择poll。poll和epoll的区别,首先就是poll每次都要轮询一遍文件描述符组,插入和删除队列,来确定就绪的文件描述符,但是epoll机制,活动的文件描述转载 2016-11-27 19:50:25 · 302 阅读 · 0 评论 -
C++ vector 注意事项
(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout而且下标只能用于获取已存在的元素,所以可以使用下标修改元素,不可添加元素。(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin();it!=vec.end原创 2016-11-26 18:33:05 · 614 阅读 · 0 评论 -
C++堆内存,栈内存,new,不new之间的关系梳理
一、一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放原创 2017-04-27 11:48:48 · 3470 阅读 · 0 评论 -
C++多进程,循环fork详解
因为我们现在要处理31个省的数据,但是每个省的数据量都很大,顺序执行是在太慢了。本来想用多线程,但是都是类里面的方法,用起来也很扯淡,所以就选择了多进程。fork()函数#include <unistd.h>//On success, The PID of the process is returned in the parent, and 0 is returned in the child.原创 2017-07-27 12:56:43 · 10438 阅读 · 1 评论