小编dcn*_*dcn的帖子

在C++中只使用静态方法的类的优点

即使C++没有静态类,来自Java背景我也会创建一个类似于Util只包含静态方法的辅助类.这被认为是不好的风格还是通常的做法?我看到的一个替代方案是使用C函数(根本没有类上下文).有什么其他选择吗?有什么优点和缺点,在哪种情况下我会使用其中任何一种.

在c ++中定义一堆静态方法建议使用命名空间静态函数作为一种替代方法,尽管我没有看到static没有类上下文的关键字有什么影响.

c++ static

29
推荐指数
4
解决办法
3万
查看次数

lambda在GCC中的运行速度有多快

在G ++ 中用C++ 0x Lambda Expression玩弄了一下,我想知道在不使用lambda函数的情况下,与一般/特定情况相比,性能有多好.

有没有人知道一个或多或少全面的关于lambda表达性能的讨论或者在开发过程中应该避免使用它们的情况?

c++ performance benchmarking lambda c++11

27
推荐指数
3
解决办法
5971
查看次数

限制每个进程的物理内存

我正在编写一个算法来执行一些外部存储器计算,即输入数据不适合主存储器而你必须考虑I/O复杂性.

因为对于我的测试,我并不总是想使用实际输入,我想限制我的进程可用的内存量.我发现,我可以设置mem内核参数来限制所有进程的物理使用内存(这是正确的吗?)

有没有办法做同样的事情,但每个进程限制.我已经看到了ulimit,但它只限制了每个进程的虚拟内存.任何想法(也许我甚至可以在我的C++代码中以编程方式设置它)?

c++ linux memory process linux-kernel

16
推荐指数
3
解决办法
4093
查看次数

大型DAG上的拓扑排序示例

我正在寻找在大图形尺寸上执行拓扑排序的真实世界应用程序.

我想象你可以找到这样的实例的一些领域是生物信息学,依赖性解析,数据库,硬件设计,数据仓库......但我希望你们中的一些人可能遇到或听说过需要的任何特定算法/项目/应用程序/数据集topsort.

即使数据/项目可能无法公开访问任何提示(以及对潜在图表大小的数量级的估计)可能会有所帮助.

database bioinformatics dataset topological-sort directed-acyclic-graphs

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

Eclipse CDT基于文件构建/运行

在我的场景中,我在CDT Eclipse中有一个C++项目.然而,这个项目是一个单独(辅助)程序的集合,而不是一个复杂的应用程序.因此,我希望能够单独构建和运行它们.

我的项目结构非常简单,看起来像:

src/app1.cpp
src/app2.cpp
src/...
Run Code Online (Sandbox Code Playgroud)

请注意,我没有常见的头文件或库.但是我希望能够通过创建例如src/appx.cpp来为这个项目添加程序

理想情况下,我希望有快捷方式

  • "Build当前打开.cpp"
  • "运行当前打开的.cpp的二进制文件"

有关如何实现此行为的任何建议,如果可能的话没有额外的插件?

c++ eclipse ide eclipse-cdt

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

自动翻译#ifdef ..#endif in vim via .vimrc

我在互联网上看到了部分解决方案,但没有一个真正让我感到满意:我必须把什么放入我的.vimrc(理想情况下我不想冒任何语法/*.vim文件)这样所有.c/cpp我打开的/ h文件,我自动折叠#ifdef ... #endif部分?

vim folding

8
推荐指数
2
解决办法
4865
查看次数

日志中STL集/映射中的随机元素

由于C++ STL集合/图作为红黑树实现的,它应该是不仅可以做insert,deletefindO(log n)的时间,而且getMin,getMax,getRandom.据我所知,前两个有相同的begin()end()(是正确的吗?).最后一个怎么样?我怎样才能做到这一点?

到目前为止我唯一的想法就是使用advance随机参数,然而这需要线性时间......

编辑:'随机'应指均匀分布

c++ algorithm performance stl

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

使用vim quickfix窗口时,请勿更改当前缓冲区

我在开发C++项目时使用VIM,并按如下方式配置编译简述

map <F4> :w<CR> :set makeprg=make<CR> :make <CR>:cw 4<CR>
Run Code Online (Sandbox Code Playgroud)

它构建我的项目并显示quickfix窗口,以防出现任何错误.

但是,这将始终使vim打开包含当前缓冲区中第一个错误的文件,当编译器指示的行不是逻辑上导致错误而当前打开的文件中的某些其他代码段时,这会很烦人.跳转到错误时,是否可以阻止VIM切换当前打开的文件(即仅当包含在当前文件中时才转到第一个错误,否则只需打开quickfix窗口).另外:我可以防止跳转到第一个错误(再次:只需打开quickfix窗口)

vim

7
推荐指数
2
解决办法
1740
查看次数

使用箭头键滚动div

这类似于SO:如何使用箭头键移动div,因此可能会有一个明确且明智的"否"作为答案:

我可以使溢出div成为一个"默认滚动目标",它对箭头向上/向下/向下翻页/空间的反应与溢出文档相同(即向下滚动内容)?页面本身没有滚动条(下面的简单示例).特别是,这可以在没有明确跟踪关键事件的情况下完成(既不直接也不隐藏JS库)?

<html>
 <body>
  <div id="contentcontainer" style="height:200px;width:200px;overflow:scroll">
   <div id="innercontent" style="height:2000px;">foo</div>
  </div>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

编辑:当然我点击进入div后上面的工作.基本上,我想避免这样做......

html javascript css

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

程序退出后回收内存

这是我的问题:运行一套程序后,free告诉我执行后大约有1 GB的可用内存减少。经过一番搜索后,我发现这样:当您在 malloc 之后不释放时,真正会发生什么(据我所知),这清楚地表明丢失的内存释放不应该是问题......(这是正确的吗?)

top不显示任何使用大量内存的进程。

我如何找出内存“发生了什么” ,即哪个程序分配了它以及为什么程序执行后它不空闲?

从哪里free收集其信息?

(我正在运行最新的 Ubuntu 版本)

linux memory-management linux-kernel

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