我有一组整数向量,第一个和第二个位置上都有整数,输入是相当特定的。
首先,我有i个输入,它们全部进入向量的第一个位置,但是之后会来到第二个输入数组,这个数组应该放在第二个位置。
然而,我想要做的是,如果我发现第二个位置的输入大于某个值(mana
,在我的情况下是变量),我希望不把它放到向量对中,并从第一个位置中删除该索引处的第一个元素,我遇到了编写代码的困难。
这是代码的一部分:
vector<pair<int, int>>spellOne;
for (int i = 0; i < nSpellOne; i++)
{
scanf_s("%d", &input);
spellOne.back().first = input;
}
for (int i = 0; i < nSpellOne; i++)
{
scanf_s("%d", &input);
if (input > mana)
{
// removing the element on .first position at i index
}
else
{
spellOne.at(i).second = input;
}
}
有没有人能帮我解决如何做到这一点以及是否可能,或者我应该切换到不同类型的数组?我也考虑使用映射,但是这不可能,因为在向量的第一个/第二个位置上我很有可能得到相同的值,因此我不能使用它们作为键。
i
的整个对,但是还要将i
减1(注意不要使i
变成负数) - gsamaras