C++ 向量中向量的保留大小

C++ 向量中向量的保留大小,c++,vector,C++,Vector,我一直在寻找一种有效的方法: int number_of_pointcloud = 666; std::vector<pcl::PointCloud<PointXYZIR>> pointcloud_vector[number_of_pointcloud] ; int size_small_pointcloud = cloud_in.size ()/ number_of_pointcloud; for(int i = 0; i < pointcloud_vec

我一直在寻找一种有效的方法:

int number_of_pointcloud = 666;    
std::vector<pcl::PointCloud<PointXYZIR>> pointcloud_vector[number_of_pointcloud] ;
int size_small_pointcloud = cloud_in.size ()/ number_of_pointcloud;
for(int i = 0; i < pointcloud_vector->size (); ++i)
    pointcloud_vector[i].reserve(size_small_pointcloud);
int number_of_pointcloud=666;
std::vector pointcloud_vector[点云的数量_];
int size\u small\u pointcloud=cloud\u in.size()/点云的数量;
对于(int i=0;isize();+i)
点云\向量[i]。保留(大小\小\点云);

基本上,我想为向量中的每个向量保留一个大小。有没有一种优雅的方法

您可以为循环使用一个范围,并将其大大缩短:

for(auto& e : pointcloud_vector) {
    e.reserve(size_small_pointcloud);
}

还有一个简短的示例,但它创建了默认元素和大小向量,不是保留的,而是大小:

int number_of_pointcloud = 666;    
int size_small_pointcloud = cloud_in.size ()/ number_of_pointcloud;
std::vector< std::vector<pcl::PointCloud<PointXYZIR> > > pointcloud_vector(number_of_pointcloud, std::vector<pcl::PointCloud<PointXYZIR> >(size_small_pointcloud));
int number_of_pointcloud=666;
int size\u small\u pointcloud=cloud\u in.size()/点云的数量;
std::vectorpointcloud_vector(点云的数量,std::vector(小点云的大小));

如果您接受大小向量生成,那么您可以使用此示例。

您是在寻找高效还是优雅?没有比这更合理的效率了。至于优雅,修复代码格式是很受欢迎的,否则就没什么可修复的了。我很确定你做得完全正确(尽管我同意Gabriel Alexander的建议)。你可以分配一个大向量而不是向量数组。你的代码甚至无法编译<代码>点云向量->大小()错误。