#include<iostream>
#include<vector>
struct Vertex
{
float x, y, z;
Vertex(float x, float y, float z)
: x(x), y(y), z(z)
{
std::cout << "constructor" << std::endl;
}
Vertex(const Vertex& vertex)
: x(vertex.x), y(vertex.y), z(vertex.z)
{
std::cout << "copied constructor" << std::endl;
}
};
std::ostream& operator<<(std::ostream& stream, const Vertex& vertex) {
stream << vertex.x << "," << vertex.y << "," << vertex.z;
return stream;
}
void Function(const std::vector<Vertex>& vertices) {
}
int main() {
std::vector<Vertex> vertices;
//vertices.reserve(3);//预分配内存,减少每次重新分配内存和复制
//vertices.push_back(Vertex(1, 2, 3));
//vertices.push_back(Vertex(4, 5, 6));
//vertices.push_back(Vertex(7, 8, 9));
//Function(vertices);
std::cout << "===============" << std::endl;
vertices.reserve(3);
vertices.emplace_back(11, 12, 13);//减少无必要的copy,可提升运行效率
vertices.emplace_back(14, 15, 16);
vertices.emplace_back(17, 18, 19);
std::cout << "---------" << std::endl;
for (int i = 0; i < vertices.size(); i++)
{
std::cout << vertices[i] << std::endl;
}
std::cout << "---------" << std::endl;
vertices.erase(vertices.begin() + 1);
for (auto& iter : vertices) {
std::cout << iter << std::endl;
}
}
c++ vector的使用
最新推荐文章于 2025-02-25 13:36:38 发布