C++
心之所向、力之所及
这个作者很懒,什么都没留下…
展开
-
C++ STL 容器vector添加元素函数emplace_back()和push_back()的使用差异
在对这两个函数进行比较之前,先提下vector这个容器的一个特点: vector底层数据结构是一个动态数组,就是在实例化一个vector对象时,如果不手动对其容量进行设置的话,vector的默认容量为0,即capacity()返回值为0。随着向容器中添加元素,容器对象按照1 2 4 8 16 32 二倍扩容。GCC是按照二倍扩容,VS13是1.5倍扩容。 扩容后是一段新的内存空间,此时就需要将旧的内存空间里的所有元素拷贝到新的内存空间中去(如果元素为一个类的对象的话,此时会触发拷贝构造函数),然后再在新的内原创 2020-11-19 14:55:29 · 998 阅读 · 0 评论 -
编译时C++ pthread报错问题:/usr/include/c++/5/thread:137:对‘pthread_create’未定义的引用
这是由于pthread库不是Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程时,在编译中要加 -lpthread参数。 解决方法: 1、在编译时加-lpthread:即g++ -g file.cpp -std=c++11 -lpthread -O *** 2、如果使用的是CMakeLists.txt对文件进行编译时。 则在CMakeLists.txt文件中加link_libraries(pthread)语句。 ...原创 2020-11-18 19:56:40 · 1137 阅读 · 0 评论