gpt4 book ai didi

c++ - 我正在尝试遍历对象 vector 并打印对象的每个元素

转载 作者:行者123 更新时间:2023-11-28 04:57:02 25 4
gpt4 key购买 nike

我正在制作飞机空气控制系统。有一个飞机对象,还有一个名为“aircraftList_”的 vector ,它包含所有飞机对象。我正在尝试编写一个名为“ListAllAircraft”的方法,它将打印 aircraftList 的所有内容,有人可以帮忙吗?

下面是我的前两个猜测,都没有成功

std::vector<Aircraft> ListAllAircraft(std::vector<Aircraft> aircraftList_)
{
std::cout << aircraftList_;
}



std::vector<Aircraft> ListAllAircraft(std::vector<Aircraft> aircraftList_)
{
for (int i = 0; i < sizeof(aircraftList_); i++)
{
std::cout << aircraftList_.at(i);
}
}

我能得到一些帮助吗?

最佳答案

使用 range-based for loop是迭代 vector 的更简单方法。

void ListAllAircraft(std::vector<Aircraft> &aircraftList_)
{
for (auto const &aircraft : aircraftList_)
{
std::cout << aircraft;
}
}

使用 sizeof是错的。 sizeof operator查询内存中对象的大小。这将包括您的 std::vector 特定实现的所有内部成员。要查询 std::vector 的实例以获取它存储的元素数量,您可以使用 std::vector::size .

要使流输出正常工作,您需要有一个 stream insertion operator为您的飞机类别定义。否则当你调用 std::cout << aircraft; 时,编译器无法知道你想要它打印什么。 .这个插入运算符的外观完全取决于您的飞机类别以及您希望为每架飞机打印的内容。它可能是这样的:

std::ostream& operator<<(std::ostream& stream, const Aircraft& aircraft)
{
stream << aircraft.name
return stream;
}

关于c++ - 我正在尝试遍历对象 vector 并打印对象的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46932214/

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