gpt4 book ai didi

c++ - 从 C++ 中的列表中删除元素

转载 作者:太空狗 更新时间:2023-10-29 20:45:03 25 4
gpt4 key购买 nike

我正在做一个 C++ 练习,我想了解如何从列表中删除一个元素并将其余元素移到左边。我想知道是否有一个巧妙的解决方案。这是我的版本,它似乎可以完成这项工作,但我觉得有更好的方法:

Account AccountList::remove(int i){
if(i>=0 && i<size()) {
for (int n = i; n < size(); n++) {
if(i+1!=size()) {
aList[n]=aList[n+1];
}
}
sz--;
return aList[i];
} else {
return Account();
}
}

最佳答案

你有两个问题。

  1. 您不会返回删除的元素,而是用下一个元素覆盖它并返回那个元素。我认为这不是你的意图。
  2. 你的循环范围不对。使用此循环,当 n = size() - 1 时,您将越过索引为 n+1 的数组边界

更正后的内容如下。

Account AccountList::remove(int i)
{
if(i>=0 && i<size())
{
Account a = aList[i]
for (int n = i; n < size() - 1; n++)
{
if(i+1!=size())
{
aList[n]=aList[n+1];
}
}
sz--;
return a;
} else
{
return Account();
}
}

关于c++ - 从 C++ 中的列表中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com