背景
最近看std的库和相关的API文档,然后就直接调用了。感觉自己好像学会了新工具,实际发现写出来的性能和老手相差很大。首先,建议大家看一下操作系统的书,了解什么是堆栈,内存的复制,回收释放等原理,在此基础上,了解std库就会有更深的见解。下面的例子是在Youtube学习编程优化的总结,分享给需要的同行。
用法优化示例
话不多说,先贴代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct Vertex{
float x, y, z;
Vertex(float x, float y, float z):x(x), y(y),z(z){}
Vertex(const Vertex& vertex):x(vertex.x), y(vertex.y), z(vertex.z){
std::cout<<"copied"<<std::endl;
}
};
int main()
{
std::vector<Vertex> vertics;
//vertics.reserve(3);
vertics.push_back({1, 2, 3});
vertics.push_back({4, 5, 6});
vertics.push_back({7, 8, 9});
return 0;
}
这是一个大家都熟悉的写法,参考API文档很容易写成如上的代码。上述代码的执行结果如下:
copied
copied
copied
copied
copi