C++检查结构为空
C++ check is struct is empty
嗨,有一个外部库函数,它具有以下功能:
struct ImageData {
int rows;
int cols;
int max_val;
std::vector<int> data;
};
/// Reads from a pgm image from ascii file. Returns empty ImageData if the path
/// is not found or any errors have occured while reading.
ImageData ReadFromPgm(const std::string& file_name);
在调用此函数后进行一些处理时,我需要一种方法来判断"空 ImageData"是什么,大致如下:
ImageData read_from_pgm = ReadFromPgm(some_file);
if (read_from_pgm is empty) { //do something }
else{ //do something else }
由于没有进一步的API文档,我们只能做一个假设。最有可能的是,空的图像数据表示ImageData
类型的默认(初始化(值(ImageData id = { }
(;。这意味着其所有字段的默认值。在这种情况下,您可以执行简单的检查:
ImageData read_from_pgm = ReadFromPgm(some_file);
if (read_from_pgm.rows == 0
&& read_from_pgm.cols == 0
&& read_from_pgm.max_val == 0
&& read_from_pgm.data.size() == 0)
{ //Image is empty }
请注意,并非绝对有必要检查所有字段。我认为只检查rows
或data.size()
也应该没问题,因为有效的图像应该始终包含一些行或数据。
相关文章:
- C++概念:如何使用'concept'检查模板化结构的属性?
- C++ - 使用用户输入的字符串数据检查结构字符串数据(无限执行 while 循环)
- 检查结构中的模板类型
- C++ - 检查结构数据类型中的单词是否为回文
- 如何检查助推融合序列是否为自适应结构
- 助推.测试检查结构是否相等
- C++检查结构为空
- 编译时检查以确保结构中的任何位置都没有填充
- 检查结构中的更改
- 是否可以检查存储在堆栈上的单词是否是回文,而C++中没有任何附加数据结构
- 如何使用 gtest 构造检查存储在向量中的结构(字段)?
- 检查 c++ 结构是否在集合中
- 给定仅包含布尔类型成员的结构的两个对象 s1 和 s2,只要 s1 的成员为 true,请检查 s2 的每个成员是否为真
- 检查类是否在继承层次结构中显式定义了成员类型
- C++如何将结构数组初始化为null,然后在while循环中检查该数组的元素是否为null
- C++检查结构中的所有状态位
- 检查结构数组是否为空
- 哪种数据结构按插入排序并具有快速"contains"检查?
- 日期结构未正确检查
- 检查结构是否不在矢量中