关于c++迭代器的问题
代码如下,其中npoints=682,最后想去除source_cloud中的指定数据,但是for循环运行到n=677时,报错“vector iterator offset out of range”。请问该如何修改?
source_cloud->width = nPoints;
source_cloud->height = 1;
source_cloud->is_dense = false;
source_cloud->resize(source_cloud->width*source_cloud->height);
for (size_t i = 0; i < source_cloud->size(); i++)
{
source_cloud->points[i].x = points[i * 4 + 0];
source_cloud->points[i].y = points[i * 4 + 1];
source_cloud->points[i].z = points[i * 4 + 2];
}
for (int n = 675; n < 682; n++)
{
pcl::PointCloud<pcl::PointXYZ>::iterator index = source_cloud->begin();
index = source_cloud->begin() +n;
source_cloud->erase(source_cloud->begin());
}
...全文
相关推荐
c++迭代器失效问题
c++迭代器失效问题,描述c++中各种集合的迭代器使用
浅谈c++ stl迭代器失效的问题
之前看《C++ Primier》的时候,也解到在顺序型窗口里insert/erase会涉及到迭代器失效的问题,并没有深究。今天写程序的时候遇到了这个问题。 1 莫名其妙的Erase 最初我的程序是酱紫的,别说话,我知道这样是有问题的,可这样是最直观的想法 int arr[]={0,1,2,3,4,5,6,7,8,9,10}; vector<int> a(arr,arr+sizeof(arr)/sizeof(*arr));for (auto it = a.begin(); it != a.end();++it ){ if ((*it)&1){ a.erase(it);
探讨C++ STL迭代器失效问题
下载前必看:https://pan.quark.cn/s/5fe89cbafab3 my_miniSTL 针对 C++标准库 STL 的一些容器的一个再实现,同时对 STL 的 vector,list 和 deque 进行实现,针对vector,引入一个自定义的链表结构保存迭代器,加入safe方法, 对导致迭代器失效的方法进行一些修复
Cpp2-In-Class
CPP2HW 作业一-回文数 目的是制作一个程序,该程序可以判断输入的数字是否是回文。
STL-CPP
STL-CPP


