【发布时间】:2020-05-07 22:54:27
【问题描述】:
大家好,可以帮帮我吗? 问题是当一个人从列表中输入一个元素时,他可以在这个元素之前插入另一个列表中的元素,但我不断地敲出错误。也许有人会帮忙? 看起来像: 3 6 7 9 用户输入 6 他可以创建另一个列表,例如 8 7 5 输出为 3 8 7 5 6 7 9 The error
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
int main()
{
int size
int size1;
int el1;
int znach=0;
cout << "Enter size: " << endl;
cin >> size;
list<int>lis;
list<int>lis1;
list <int> ::iterator it;
int s = lis.size() / 2;
auto it1 = lis.begin();
advance(it1, s);
for (int i = 0; i <size; i++)
{
cout << "Enter " << i << " element: ";
cin >> t;
lis.push_back(t);
}
cout << "Enter element: " << endl;
cin >> el1;
for (it = lis.begin(); it != lis.end(); it++)
{
if (*it = el1)
{
znach++;
}
}
if (znach == 0)
{
cout << "There is no element;" << endl;
}
else
{
cout << "Enter size of new vector: " << endl;
cin >> size1;
for (int i = 0; i < size1; i++)
{
int t1;
cout << "Enter " << i << " element: ";
cin >> t1;
lis1.push_back(t1);
}
auto it2 = lis.begin();
while (*it2 != el1)
{
it2++;
}
--it2;
lis.splice(it2, lis1);
}
for (it = lis.begin(); it != lis.end(); it++)
{
cout << *it<<" ";
}
}
【问题讨论】:
-
什么调试断言失败了?
-
size是什么?请提供minimal reproducible example -
对不起,更新了。
-
您应该将消息作为文本包含在问题中(不是每个人都可以查看图像)。它说“不能减少开始迭代器”并且有一个地方可以减少迭代器,现在尝试猜测问题出在哪里;)
-
@idclev463035818 如果我删除行 --it2;它运行良好,但输出错误。我输入第一个列表 1 5 7,然后输入我想将第二个列表放在 num 之前(第二个列表是 9 8),输出是 9 8 5 5 5
标签: c++