1 在数组中
int arr[10];
for(int i=0;i<10;i++)
{
arr[i]=i;
}
for(auto &a:arr)
{
std::cout << a;
}
输出的结果就是0—9这十个数。
for(auto &a : arr)中“auto &a”就是变量名就和上一个for循环中的“int i”一样,
与for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)是一样的。
2 在pcl点云库中
for循环中auto的用法
int main (int argc, char** argv)
{
// 我们将创建的模板化 PointCloud 结构
pcl::PointCloud<pcl::PointXYZ> cloud;
// 用随机点云填充pointcloud structure
// Fill in the cloud data
cloud.width = 5;
cloud.height = 1;
// cloud.is_dense 表示所有点中没有无穷值或Nan值
cloud.is_dense = false;
// 对该points容器进行初始化
cloud.points.resize (cloud.width * cloud.height);
// 为点中的每个随即点云赋值
for (auto& point: cloud)
{
point.x = 1024 * rand () / (RAND_MAX + 1.0f);
point.y = 1024 * rand () / (RAND_MAX + 1.0f);
point.z = 1024 * rand () / (RAND_MAX + 1.0f);
}
return (0);
}
for循环的另一种用法
int main (int argc, char** argv)
{
// 我们将创建的模板化 PointCloud 结构
pcl::PointCloud<pcl::PointXYZ> cloud;
// 用随机点云填充pointcloud structure
// Fill in the cloud data
cloud.width = 5;
cloud.height = 1;
// cloud.is_dense 表示所有点中没有无穷值或Nan值
cloud.is_dense = false;
// 对该points容器进行初始化
cloud.points.resize (cloud.width * cloud.height);
// 为点中的每个随即点云赋值
// for (auto& point: cloud)
// {
// point.x = 1024 * rand () / (RAND_MAX + 1.0f);
// point.y = 1024 * rand () / (RAND_MAX + 1.0f);
// point.z = 1024 * rand () / (RAND_MAX + 1.0f);
// }
for (std::size_t i = 0; i < cloud.points.size(); i++)
{
cloud.points[i].x=1024 * rand () / (RAND_MAX + 1.0f);
cloud.points[i].y=1024 * rand () / (RAND_MAX + 1.0f);;
cloud.points[i].z=1024 * rand () / (RAND_MAX + 1.0f);
}
return (0);
}