C++ 列表不起作用
c++ list isn't working
我认为问题是因为我从列表中删除元素时,我不知道为什么确切地知道为什么我的迭代器正在跳上它。顺便说一句,我正在按降序排序列表。
#include <fstream>
#include <list>
using namespace std;
ifstream fin("barci.in");
ofstream fout("barci.out");
int n,x,i,g,dif,ng,nd,k;
list <int> v;
list <int>::iterator it,jt;
bool cmp(int a, int b)
{
return a>b;
}
int main()
{
fin>>n>>g>>dif;
for(i=0; i<n; i++)
{
fin>>x;
v.push_back(x);
}
v.sort(cmp);
/*for(it=v.begin(); it!=v.end(); it++)
fout<<*it<<" ";*/
for(it=v.begin(); it!=v.end(); )
{
ng=g-*it;
nd=*it-dif;
for(jt=++it; jt!=v.end(); jt++)
if(*jt<=ng && *jt>=nd)
{
jt=v.erase(jt);
break;
}
k++;
}
fout<<k;
return 0;
}
如果当jt
== it
(循环中的第一轮)删除元素,则it
将无效,无法递增。
然后jt=++it
在下一个迭代中会做一些不好的事情。
相关文章:
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 链接列表中的所有节点都相同,似乎插入不起作用
- 双链接列表添加元素不起作用,不知何故它总是保持为空
- 对列表迭代器指向的对象不起作用的引用
- 使用.txt文件填充 STL 列表不起作用
- 合并两个排序的列表 - 不起作用
- 为什么此代码用于单个链接列表不起作用
- 没有临时数组的列表初始化 - 在 GCC 中不起作用
- 将列表元素移动到列表末尾的函数多次不起作用
- 在声明节点创建链接列表时,为什么静态内存分配不起作用
- C++ 列表不起作用
- 使用引用遍历链接列表不起作用
- 使用初始化列表的 POD 类型初始化不起作用
- 基于双重链接列表不起作用的Deque实施
- C++迭代时删除列表成员:标准解决方案不起作用
- 标准::列表::擦除不起作用
- 链接列表打印不起作用.
- QML XML 列表视图不起作用
- 尝试使用值初始化列表,但在使用变量创建大小时不起作用
- GCC 4.8.1 中的C++11:复制构造函数的列表初始化不起作用