小编Ada*_*dam的帖子

哪个更快:堆栈分配或堆分配

这个问题可能听起来相当简单,但这是我与另一位与我合作的开发人员的辩论.

我正在小心处理堆栈分配的东西,而不是堆分配它们.他正在跟我说话,看着我的肩膀并评论说这没有必要,因为他们的表现是明智的.

我一直认为堆栈的增长是恒定的时间,并且堆分配的性能取决于堆的当前复杂性(用于找到合适大小的孔)和解除分配(折叠孔以减少碎片,如如果我没有弄错的话,许多标准库实现在删除期间需要时间来完成此操作.

这让我觉得可能非常依赖于编译器.特别是对于这个项目,我使用Metrowerks编译器来实现PPC架构.对这种组合的洞察力将是最有帮助的,但总的来说,对于GCC和MSVC++,情况如何?堆分配不如堆栈分配高吗?没有区别吗?或者差异是如此微小,它变得毫无意义的微优化.

c++ memory heap performance stack

489
推荐指数
13
解决办法
12万
查看次数

C++中不区分大小写的字符串比较

在不将字符串转换为全部大写或全部小写的情况下,在C++中进行不区分大小写的字符串比较的最佳方法是什么?

请说明这些方法是否符合Unicode,以及它们的可移植性.

c++ string

373
推荐指数
20
解决办法
45万
查看次数

我如何迭代枚举?

我只是注意到你不能在枚举上使用标准数学运算符,如++或+ =

那么迭代C++枚举中所有值的最佳方法是什么?

c++ enums

282
推荐指数
12
解决办法
29万
查看次数

从标准输入中捕获字符,无需等待按下输入

我永远不会记得我是怎么做的,因为它对我来说很少见.但是在C或C++中,从标准输入读取字符而不等待换行符的最佳方法是什么(按回车键).

理想情况下,它也不会将输入字符回显到屏幕上.我只想捕捉击键而不影响控制台屏幕.

c c++ inputstream

163
推荐指数
11
解决办法
19万
查看次数

如何重载std :: swap()

std::swap()在排序甚至分配期间被许多std容器(例如std::liststd::vector)使用.

但是std实现swap()非常普遍,而且对于自定义类型来说效率很低.

因此,通过std::swap()使用自定义类型特定实现进行重载可以获得效率.但是如何实现它以便std容器使用它?

c++ optimization performance stl c++-faq

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

单身人士:好的设计还是拐杖?

单身人士是一个备受争议的设计模式,所以我对Stack Overflow社区对它们的看法感兴趣.

请提供您的意见的原因,而不仅仅是"单身人士是懒惰的程序员!"

这是一篇关于这个问题的相当不错的文章,虽然它反对使用Singletons: scientificninja.com:performant-singletons.

有没有人对他们有任何其他好文章?也许是为了支持单身人士?

language-agnostic singleton design-patterns

67
推荐指数
11
解决办法
2万
查看次数

构建用于静态链接的Boost(MinGW)

我正在使用bjam为MinGW构建Boost(我正在使用System和FileSystem):

bjam --toolset=gcc stage
Run Code Online (Sandbox Code Playgroud)

它构建良好,但我希望能够静态链接到它(我必须有一个文件的最终产品)所以我试过:

bjam --link=static --toolset=gcc stage
Run Code Online (Sandbox Code Playgroud)

但我得到了相同的输出.有任何想法吗?

连续编辑第二个问题我在发帖后回答了几个问题:p猜我会把这个问题留给其他人.

bjam --build-type=complete --toolset=gcc stage
Run Code Online (Sandbox Code Playgroud)

肯定会建立动态和静态.

c++ linker boost build bjam

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

有没有办法防止在子类中重写方法?

是否有人知道C++中的语言特性或技术,以防止子类过度使用父类中的特定方法?

class Base {
public:
    bool someGuaranteedResult() { return true; }
};

class Child : public Base {
public:
    bool someGuaranteedResult() { return false; /* Haha I broke things! */ }
};
Run Code Online (Sandbox Code Playgroud)

尽管它不是虚拟的,但仍然允许这样做(至少在我正在使用的Metrowerks编译器中),所有你得到的是关于隐藏非虚拟继承函数X的编译时警告.

c++ overriding metrowerks

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

字符串在C++中降低/降低

在C++中人们发现使用String to Lower case/Upper case的最佳方法是什么?

C++不是一种英语编程语言,这个问题很复杂.有一个很好的多语言方法吗?

c++ string unicode

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

PHP中的htmlspecialcharacters相当于.NET?

PHP有一个很棒的函数叫做htmlspecialcharacters(),你可以在其中传递一个字符串,并用它们的安全等价物替换所有HTML的特殊字符,它几乎是一站式消毒输入.非常好吗?

那么在任何.NET库中都有相同的东西吗?

如果没有,任何人都可以链接到任何代码样本或库这样做吗?

.net php c# asp.net

18
推荐指数
2
解决办法
9827
查看次数