gpt4 book ai didi

c++帮助将 vector 索引传递给函数

转载 作者:行者123 更新时间:2023-11-28 03:50:26 24 4
gpt4 key购买 nike

我知道如何将 vector 传递给函数,但如何将 vector 索引传递给函数,或者至少指定函数正在修改的索引。例如,我正在研究 Car 类,它有一个 vector if wheel pointers 并且为了移除其中一个轮子,我的函数如下所示:

Wheel& remove() {
for (int i = 0; i < wheels.size(); i++) {
if (wheels[i].position == wheels.at(i)) {
??
}

我需要将什么传递给函数以指定要移除的轮子?当一个轮子被移除时,它原来的位置仍然存在,可以由另一个轮子填充。比方说汽车有 4 个轮子……如果我想删除轮 vector 中的第二个索引,remove() 的函数参数需要做什么才能做到这一点?我应该先传入 vector ,然后再传入特定索引....如果是这样,语法是什么样的?

最佳答案

您可以只传递一个整数来指定要删除的那个

void RemoveWheel(int i)
{
if( (i<wheels.size()) and (i>=0) )
wheels.erase(wheels.begin()+i);
}

http://www.cplusplus.com/reference/stl/vector/erase/

如果你想为另一个轮子留出空间,你应该将 wheels 定义为指针 vector ,只需删除第 i 个位置的对象并保存 NULL 而不是它。

vector<Wheel *> wheels;

void RemoveWheel(int i)
{
if( (i<wheels.size()) and (i>=0) ) {
delete wheels[i];
wheels[i] = 0;
}
}

关于c++帮助将 vector 索引传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5707238/

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