做算法题网站百度官方入口
提示:文章
文章目录
- 前言
- 一、背景
- 二、
- 2.1
- 2.2
- 总结
前言
前期疑问:
本文目标:
一、背景
最近
二、
2.1
c++ 结构体默认初始化
在C++中,结构体的默认成员初始化可以通过构造函数来完成。如果没有为结构体提供构造函数,那么结构体的成员将使用默认构造函数进行初始化(对于内置类型如int,double等,会被初始化为0)。
如果你想要为结构体提供一个默认的初始化值,你可以定义一个构造函数,并在其中设置默认的成员值。
以下是一个简单的例子:
struct Point {int x;int y;Point(int xVal = 0, int yVal = 0) : x(xVal), y(yVal) {} // 构造函数
};int main() {Point p; // 使用默认初始化,x = 0, y = 0Point q(10); // x = 10, y = 0Point r(20, 30); // x = 20, y = 30return 0;
}
在这个例子中,Point
结构体有一个构造函数,它接受两个参数,这两个参数分别用来初始化 x
和 y
成员。如果在创建 Point
对象时没有提供参数,那么 x
和 y
将使用默认值0。如果提供了参数,将使用提供的参数值来初始化 x
和 y
。
上述是百度Ai的回答。按照他的意思,如果c++的结构体没有提供构造函数,会使用默认构造函数进行初始化。这边需要验证。
但是其实写一个用于初始化的构造函数会更保险。比如我在代码中写了结构体的默认构造函数。
struct RoadDataInfoStruct
{int fromId;int toId;std::string roadInfo;std::vector<int> passTime;std::vector<int> waitTime;float passTimeRatio;bool passTimeRealTimeCountOverFlag;RoadDataInfoStruct(){fromId = 0;toId = 0;passTimeRatio 0.0f;passTimeRealTimeCountOverFlag = false;}
};typedef RoadDataInfoStruct RoadDataInfo;
总结
未完待续