小编use*_*904的帖子


返回alloca指针

此代码是否返回对堆栈上分配的变量的无效引用?或者是什么:

void *f(size_t sz) {
    return alloca(sz);
}
Run Code Online (Sandbox Code Playgroud)

或者这是一个由alloca实现/编译器支持处理的特殊情况f(alloca(size), alloca(size))

c stack pointers memory-management alloca

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

使用恒定空间迭代所有互质对?

我可以按照维基百科上列出的三元树算法生成所有互质对:https: //en.wikipedia.org/wiki/Coprime_integers

很快:

Start with two coprime branches: (2,1), (3,1), then iterate:
Branch 1: (2m-n,m)
Branch 2: (2m+n,m)
Branch 3: (m+2n,n)
Run Code Online (Sandbox Code Playgroud)

然而,对于每对产生的空间使用的空间将增长三倍(并且说打印,或者不保留在存储器中).

这可能是haskell中的一个解决方案: 生成所有可能的coprimes的排序列表

但我正在寻找python中的东西,它没有懒惰的评估或无限的列表.

python algorithm primes ternary-tree

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

自定义擦除c ++集或其他集合

我想做这样的事情:

std::set<my_type*> s;

s.insert(new my_type(...));
...
s.erase(...);
Run Code Online (Sandbox Code Playgroud)

set的擦除将删除指针以避免内存泄漏.

这是可能的C++容器或适当的解决方案是子类化容器和编写我自己的擦除,或使用某种智能指针方案?

c++ design-patterns stl c++14

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