- 博客(9)
- 收藏
- 关注
原创 使用库(动态链接)
动态链接GLFW,动态链接发生在运行时;可执行文件知道动态链接库的存在,可执行文件把动态库作为一项需要,虽然动态库是一个单独的文件,单独的模块,并且在运行时加载;或者完全动态的加载动态库,这样可执行文件与动态库完全没有任何关系了;但在可执行文件中,可以写代码,运行时加载动态库获取相应的东西。静态链接当编译静态库时,将其链接到可执行文件(应用程序),由于编译器和链接器已经完全知道,静态链接时,实际进入应用程序的代码,所以静态链接允许更多的优化发生,
2024-08-07 20:20:52
150
原创 使用库(静态链接)
在项目中使用外部库,理想的项目设置是,如果签出到远程存储库/代码仓库/来自github或其他,应该在存储库中有所需的东西,以便能直接编译和运行项目的应用程序,不需要考虑包管理去下载其他需要的库。因此在实际项目文件夹中,保留使用的库的版本,可以包含依赖库的源代码,然后将其编译为静态或动态库,没有源代码就链接二进制文件,下面举例链接二进制GLFW库。注:如果编译我的应用程序,X86就是win32程序,那就要用32位的二进制文件;库目录(lib目录):预先构建的二进制文件,通常有动态库和静态库。
2024-07-31 21:35:03
161
原创 std::vector使用优化
当创建vertex时,是在主函数的当前栈中构造它,在main的栈上创建它,需要把main函数中创建的vertex放到实际的vector中去(vector分配的内存中),如果在合适的位置构造vertex,同时提前告知要存的数量能减少复制。当push_back元素时,vector调整内存,不断复制所有对象删除原来的对象,那如何才能避免复制对象?2、push_back元素。1、创建vector。
2024-07-30 20:09:43
114
原创 动态数组Dynamic array/ Vector class
称为Vector class,其实是Dynamic array;其为内存连续的数组,并且尽量使用对象而不是指针进行修改。动态数组:使用标准模板库的Vector类(std::vector)动态数组:动态的变化数组大小,创建新大小的数组,然后删除老数组。将Vector传递给函数或数组时,通过引用传递他们。
2024-07-29 21:26:50
124
原创 Smart Pointer
shared_ptr是共享指针,实现方式取决于编译器和编译器中使用的标准库,引用计数(跟踪指针有多少个引用,一旦引用计数为0它就被删除了)智能指针本质上是一个原始指针的包装,当你调用智能指针,它会调用new并为你分配内存,基于你使用的智能指针,这些内存会在某一时刻自动释放。weak_ptr是弱指针,也可以像声明其他东西一样,给它赋值为sharedEntity,但不会增加引用计数。unique_ptr是作用域指针,超出作用域时会delete并销毁。new和delete在堆上分配内存和删除内存。
2024-07-01 00:22:58
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人