有没有办法找出指针数组中指针的长度/数量?
即
class Notifications {
iMessage **messages;
public:
Notifications();
Notifications(const Notifications&);
Notifications& operator=(const Notifications&);
Notifications(Notifications&&);
Notifications&& operator=(Notifications&&);
~Notifications();
void operator+=(const w5::iMessage&);
void display(std::ostream&) const;
}
我怎样才能找到数组中指针的数量?
最佳答案
你有三个选项,按照善意递增的顺序:
使最后一个为空,所有其他为非空。这是唯一需要您的数据的解决方案,将其视为 c 风格的字符串,除了使用指针而不是 char
之外。
for (iMessage** msg = messages; *msg; ++msg) { ... }
将大小与您的消息一起存储:
iMessage **messages;
const size_t size;
for (size_t i = 0; i < size; ++i) {
iMessage* msg = messages[i];
// ...
}
使用专门设计用于在连续内存中存储任意数量的东西的容器:
std::vector<iMessage*> messages;
for (iMessage* msg : messages) {
// ...
}
基本上就是这样,除非您事先知道 messages
的大小,并且它是一个编译时常量,在这种情况下,它是:
iMessage* messages[100];
std::array<iMessage*, 100> messages;
为您提供正确的字体大小。
关于c++ - 如何在指针数组中找到指针的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27038384/