gpt4 book ai didi

c++ - 检查对象数组中的 'null' 槽

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:37 28 4
gpt4 key购买 nike

你好我来自java阵营,正在尝试做一个c++程序

我有一个名为 Manifest 的数组,它接收乘客对象

for (int i = 0; i< _totalSeats; i++) 
{
if (Manifest[i] != instanceOf Passenger) {
cout<<"empty"endl;
}
else {
cout<< PassengerToString(i);
}
}

显然 'instanceOf' 是 C++ 中的一个问题,我知道 is==null 不起作用,因为没有专门插入就没有 null 这样的东西但是构建一个空白的 passenger 对象然后将它们插入每个数组槽中听起来既麻烦又昂贵。有没有更优雅的方式?

谢谢

最佳答案

这听起来像是在将座位映射到乘客。这意味着 map可能是更好的选择,比如std::map<int, Passenger> Manifest .

例如

#include <map>
#include <string>
#include <iostream>
class Passenger
{
public:
std::string toString() const
{
return "Passenger";
}
};

int main()
{
std::map<int, Passenger> Manifest;
Manifest[2] = Passenger();
int _totalSeats = 10;

for (int i = 0; i< _totalSeats; i++)
{
if (Manifest.count(i))
std::cout << Manifest[i].toString() << '\n';
else
std::cout << "empty\n";
}
}

试运行:https://ideone.com/XkNOg

关于c++ - 检查对象数组中的 'null' 槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494828/

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