struct S1
{
size_t v = sizeof(S2); //compiler error here
};
struct S2
{
S1 s1;
};
Run Code Online (Sandbox Code Playgroud)
struct S2 需要低于 S1,以便它可以将其作为成员,但我也希望 sizeof(S2) 存储在 S1 中。
我做了一个解决方法,我放置了一个返回 sizeof(S2) 但在定义 S2 之后定义的函数原型,如下所示:
size_t func();
struct S1
{
size_t v = func();
};
struct S2
{
S1 s1;
};
size_t func()
{
return sizeof(S2);
}
Run Code Online (Sandbox Code Playgroud)
但我觉得这是一个非常丑陋和糟糕的解决方案,有更好的方法吗?
如果函数的语句执行随着输入的增加而增加但有限制,那么它会被视为 O(n) 还是 O(1)?
例如:
void func(int n)
{
if (n > 1000)
{
for (int i = 0; i < 1000; i++)
{
//do thing
}
}
else
{
for (int i = 0; i < n; i++)
{
//do same thing
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数是 O(n) 还是 O(1)?