小编Abd*_*nzi的帖子

如何在 C++ 中获取尚未定义的结构体的 sizeof

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)

但我觉得这是一个非常丑陋和糟糕的解决方案,有更好的方法吗?

c++ struct sizeof

5
推荐指数
2
解决办法
176
查看次数

时间复杂度随着输入而增加但有限制的算法是否被视为 O(n)?

如果函数的语句执行随着输入的增加而增加但有限制,那么它会被视为 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)?

algorithm time-complexity

1
推荐指数
1
解决办法
67
查看次数

标签 统计

algorithm ×1

c++ ×1

sizeof ×1

struct ×1

time-complexity ×1