适合谁看:资深的嵌入式系统底层专家。技能栈(C、SoC、Bootloader、驱动、系统移植、DSP优化、Cache调优、功耗分析)是芯片设计的核心和基础,具备从硬件(SoC) 到底层固件(ROM Bootloader)再到操作系统层(驱动、RTOS)的全栈知识和实战经验,希望向嵌入式场景的AI部署方向拓展,寻求新的发展空间。
现代C++支持对任意类型使用括号初始化,这在初始化array、vector这类容器的时候非常好用。
比如我们定义一个class S
struct S
{
std::string name;
float num;
S(std::string s, float f) : name(s), num(f) {}
};
它本身有两个成员变量,可以用下面的方式初始化:
// C-style initialization
S s1("Norah", 2.7);
S s2("Frank", 3.5);
S s3("Jeri", 85.9);
然后用一个vector来装这三个类
std::vector<S> v;
v.push_back(s1);
v.push_back(s2);
v.push_back(s3);
这就是经典的C风格的初始化方法,现代C++通常像下边这样初始化:
// Modern C++:
std::vector<S> v;
std::vector<S> v2 {s1, s2, s3};
或者这样:
// or...
std::vector<S> v3{ {"Norah", 2.7}, {"Frank", 3.5}, {"Jeri", 85.9} };
}
看着就简洁多了