小编shu*_*alo的帖子

使用Python绘制变形的2D网格

我想绘制一个变形的矩形网格,这意味着节点的坐标取决于节点的索引.目的是通过函数可视化单位平方的变形.

我怎么能在python中做到这一点?

python matplotlib

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

复制std :: vector但将lambda应用于每个元素

我有一个std :: vector X的std :: vector,比方说,在C++中是double.

如何将X转换为int的std :: vector Y,使得X [i] .size()== Y [i]适用于所有可接受的索引i?

std::vector< std::vector<int> > X;
...
/* What I want to do should look as follows */
std::vector<int> Y = std::copy_and_transform( X, lambda_to_get_size );
Run Code Online (Sandbox Code Playgroud)

当然,这可以通过循环来实现,但在C++ 11中我们想要使用lambdas.我在std :: algorithm中找不到类似的东西.标准工具似乎只提供了改变原始向量的转换,并且不允许更改数据类型.

c++ lambda vector c++11

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

C,C++或Fortran的代码抛光器/重整器

假设您有一堆用C,C++或Fortran编写的文件,由不同的作者编写,对格式化有不同的看法,如何评论,等等.我想很多人都知道这样的情况.

有没有免费的工具,如:

  • 统一的代码格式(缩进等)
  • 创建标准评论机构
  • 重命名变量

c c++ fortran code-formatting

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

将代码编译为单个自动合并文件,以允许编译器更好地进行代码优化

假设您有一个使用C,C++或任何其他使用"compile-objects-then-link-them"-scheme的语言的程序.

当你的程序不小时,它可能会破坏几个文件,以便简化代码管理(并缩短编译时间).此外,在一定程度的抽象之后,您可能具有深度调用层次结构.特别是在最低级别,任务最重复,最常见的是你想强加一个通用的框架.

但是,如果将代码分段为不同的目标文件并对代码使用非常抽象的体系结构,则可能会造成性能(如果您或您的主管强调性能,这会很糟糕).

循环这种方法的一种方法可能是广泛的内联 - 这是模板元编程的方法:在每个翻译单元中,您包括一般,灵活结构的所有代码,并依靠编译器来抵消性能问题.我想在没有模板的情况下做类似的事情 - 比如说,因为它们太难以处理或因为你使用普通的C.

您可以将所有代码写入一个文件中.那太可怕了.如何编写脚本,将所有代码合并到一个源文件中并编译它?要求您的源文件写得不是太多.然后编译器可能会应用更多优化(内联,死代码编译,编译时算术等).

你对这个"诡计"有任何经验或反对意见吗?

c c++ optimization compilation

3
推荐指数
2
解决办法
554
查看次数

GCC C++编译器是否考虑了__restrict - 语句?

我已经研究了__restricting C++代码中某些指针的效果,当通过GCC编译器进行编译时.

它转变为不仅运行时间保持不变,而且可执行文件似乎没有改变,以字节为单位的大小与之前完全相同.

我的GCC版本是

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)
Run Code Online (Sandbox Code Playgroud)

虽然它在解析时接受了这个C++扩展,但在组装代码时它似乎并没有考虑到它.所以有一个原因,编译器不知道如何使用这个语义信息,或者处理这些信息是完全禁用的.

代码执行大量的数字运算,它希望它能够用于测试目的.你能帮我吗?

c++ gcc pointers restrict-qualifier

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

GCC:允许在C99中重载功能

我在C99中编写代码并通过GCC编译.我想使用函数重载的风格原因(否则我必须自己做名称修改).

我读过有没有理由说C99不支持函数重载?但是,我仍然想知道它是否可以在GCC中启用.

你能帮助我吗?

c gcc overloading c99

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

在C / C ++中断言(false)的更好替代方法

目前,我写

assert(false);
Run Code Online (Sandbox Code Playgroud)

在我的代码永远无法到达的地方。一个非常C风格的示例是:

int findzero( int length, int * array ) {
  for( int i = 0; i < length; i++ )
    if( array[i] == 0 )
      return i;
  assert(false);
}
Run Code Online (Sandbox Code Playgroud)

一旦达到assert(false),我的编译器就会意识到程序已完成。但是,每当出于性能原因使用-DNDEBUG进行编译时,最后一个断言都会消失,并且编译器会警告执行将在没有return语句的情况下完成该函数。

如果已经达到了代码的一个所谓的无法到达的部分,那么完成程序的更好的替代方法是什么?解决方案应该

  • 被编译器识别并且不产生警告(如上述警告或其他警告)
  • 甚至允许自定义错误消息。

无论是现代C ++还是90s C,我都对解决方案特别感兴趣。

c c++ debugging assert

2
推荐指数
3
解决办法
244
查看次数

市场上的 Github Actions 可以做恶意的事情吗?

我是 GitHub Actions 的绝对初学者。

市场上有可用的操作。这些操作中的任何一个都可以对我的存储库进行恶意操作吗,例如,

  • 删除我的回购?
  • 将恶意代码提交到我的仓库中?
  • 从私有存储库复制内容?

github-actions

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

C中当前翻译单元编译的对象名称

有一个宏或一个全局变量,通过它我可以了解当前翻译单元将在C中使用的目标文件的名称?我只知道源文件宏.

谢谢.

c

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

创建列表副本并删除元素

我想写这样的东西

S = [ 0, 1, 2 ]
F = [ S.without(i) for i in range(0,len(S)) ]
print F
Run Code Online (Sandbox Code Playgroud)

和Python推出

[[0,1],[0,2],[1,2]]

并没有在网上参考中找到这样的东西.你能帮助我吗?

python list

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