2017年5月29日

摘要: 1、set容器元素必须是能够被排序的,如果元素是对象,默认排序规则不适用了,需要给它指定排序规则。 2、set容器的迭代器是一个常迭代器,只能读,不能通过迭代器,修改元素。 3、插入删除set元素,不会造成原有迭代器失效,所以它肯定不是一个连续内存空间, 4、multiset唯一区别是,允许元素重复 阅读全文
posted @ 2017-05-29 20:30 izangwei 阅读(110) 评论(0) 推荐(0)
摘要: 1、插入删除不需要移动元素,比vector,deque操作方便 2、vector和list是两个最常用的容器, 3、list迭代器是双向迭代器,不支持sort算法。 4、插入删除不会导致原有迭代器失效 5、双向循环链表 阅读全文
posted @ 2017-05-29 19:56 izangwei 阅读(73) 评论(0) 推荐(0)
摘要: 1、stack没有提供迭代器,迭代器是用来遍历的,不支持遍历,队列也是。 2、迭代器简单理解为指针,实际上是一个对象,封装了一些操作。 3、没有通用的迭代器,由容器提供。 阅读全文
posted @ 2017-05-29 19:48 izangwei 阅读(99) 评论(0) 推荐(0)
摘要: 1、是一段一段定量的连续空间构成,迭代器复杂,遍历效率不高 阅读全文
posted @ 2017-05-29 19:40 izangwei 阅读(54) 评论(0) 推荐(0)
摘要: 1、vector是一块连续的内存空间,一般叫做动态数组(向量),提供随机访问迭代器,push_back()后,可能会重新分配空间的时候,原来的迭代器会失效,单口的容器,尾部插入,尾部删除。 阅读全文
posted @ 2017-05-29 17:18 izangwei 阅读(98) 评论(0) 推荐(0)
摘要: 1、声明是不会编译的,cpp文件才进行编译,模板类是两次编译的,编译模板的时候不能分文件编译,写模板的时候一般头文件和cpp文件放在同一个文件中(hpp),引用的时候直接引用hpp,可以保证两次编译,产生具体的类。 2、模板参数类型化。 阅读全文
posted @ 2017-05-29 17:10 izangwei 阅读(541) 评论(0) 推荐(0)

2017年5月28日

摘要: 1、对象以值传递的方式给函数传参; 2、函数局部对象以值传递的方式从函数返回(vs debug模式下调用一次拷贝构造,qt不调用任何构造); 3、用一个对象初始化另一个对象。 阅读全文
posted @ 2017-05-28 18:56 izangwei 阅读(120) 评论(0) 推荐(0)
摘要: 1、内联函数是相对于宏函数而言的,为什么使用宏函数,原因是,宏函数只在预处理时进行简单的替换,没有函数调用的开销,压栈,跳转,返回,提高程序性能。对于一些短小而频繁使用的函数,可以使用内联函数。 2、普通函数加上inline,但是不一定进行内联编译,仍然不会进行宏展开。 3、要报inline关键字和 阅读全文
posted @ 2017-05-28 14:50 izangwei 阅读(125) 评论(0) 推荐(0)
摘要: 1、c中const是一个只读的变量有内存;c++的const是一个常量,有没有分配内存要看具体情况,例如:定义一个全局的const int a =10;如果后序对a进行取地址操作,编译器会在全局常量区为a分配内存空间,如果没有取地址操作,则不会分配内存,并且编译器会进行优化,在预处理阶段将a用10替 阅读全文
posted @ 2017-05-28 14:21 izangwei 阅读(151) 评论(0) 推荐(0)

导航