小编shu*_*alo的帖子

const-correctness可以提高性能吗?

我已多次阅读过,在C或C++代码中强制执行const-correctness不仅是一个关于可维护性的好习惯,而且它可能允许编译器执行优化.但是,我也完全相反 - 它根本不会影响性能.

因此,您是否有一些示例,其中const正确性可以帮助您的编译器提高程序的性能?

c++ performance const-correctness

76
推荐指数
4
解决办法
2万
查看次数

在矩阵中查找给定的行

我有一个m乘n矩阵MATLAB,比如M.我有一个n元素行向量,即一个n列矩阵,比如X.

我知道X在M的某个地方.我怎样才能在M中找到索引?

matlab

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

为什么C++模板使用尖括号语法?

标题问题是指在1990年左右引入模板的C++标准中的设计决策.

为什么设计师使用<>(尖括号)而不是()(圆括号)?这样做可以节省大量程序员与位移相关的错误

std::vector<std::vector<int>> // does not work until C++11
Run Code Online (Sandbox Code Playgroud)

只在C++ 11中得到修复.我没有看到引入额外语法的理由,可以说,圆括号在保持变化极简主义的同时可以起到同样的作用.你可以使用它

template(typename T) // Define template if round brackets could be used
mytemplate { ... }
...
...
mytemplate(mytemplate(int)) obj; //Instantiate template when round brackets could be used
Run Code Online (Sandbox Code Playgroud)

精通C++历史的人能否挖掘出使用尖括号的原始设计理念?或者,你能说明为什么其他解决方案也不会有效吗?

c++ language-design template-meta-programming c++11

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

Libreoffice:将部分内容拆分为多个列

我在Libreoffice作家中有一段文字(和其他内容).我想将此内容的一段分成多个列,并在不受影响之前和之后保留文本.

如何实现这一目标?

word-processor libreoffice

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

为什么 std::swap&lt;std::array&lt;int,3&gt;&gt; 无法编译?

我想交换两个固定大小的整数数组。

与直觉相反,以下内容无法编译,因为没有swap找到匹配的实例。

#include <array>
#include <utility>

int main()
{
    std::array<int,3> a, b;
    std::swap< std::array<int,3> >( a, b ); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我觉得这很令人惊讶。但是,用编译替换交换std::swap(a,b)并且(根据 VSCode)具有签名

inline void std::swap<int, 3UL>(std::array<int, 3UL> &__one, std::array<int, 3UL> &__two)
Run Code Online (Sandbox Code Playgroud)

我也无法理解。

问:这是怎么回事?

c++ swap std

21
推荐指数
2
解决办法
1742
查看次数

编写适合STL的C++容器

我想用一种非常巧妙地融入STL的样式来编写容器类.它的外观和行为应该像标准STL容器一样.

是否有手册,报告,问答等,描述了如何使用这些功能编写代码?这样的文本应该损害STL的设计原则,陷阱,编码约定等.

PS:这个问题部分受到了这个问题的启发:具有动态项目大小的C++向量,尽管这个想法与模板类无关.

c++ stl reference-manual

19
推荐指数
2
解决办法
1607
查看次数

Makefiles:什么是仅限订单的先决条件?

GNU make 手册介绍了仅订购先决条件

target: prerequisite1 prerequisite2 | orderonlyprerequisite1 orderonlyprerequisite2
Run Code Online (Sandbox Code Playgroud)

然而,虽然该手册页给出了一个示例并描述了仅订购先决条件的目的,但该手册页从未回答标题中的问题:什么是仅订购先决条件?

你能给出一个精确的定义,只有订单的先决条件是如何表现的吗?

makefile

17
推荐指数
2
解决办法
4539
查看次数

第一次出错后立即停止valgrind

我的程序处理大错误,在开发过程中会在控制台上产生大量输出.它遭受内存损坏,我尝试使用valgrind来定位错误.

不幸的是,我无法在输出行中找到错误消息,并且当它们弹出时它们会快速刷新以取消执行.它们必须在那里才能找到错误(哪个元素确实会导致错误等等).然后在我的程序中重定向不起作用,就像管道输出只重定向程序输出,而不是valgrind输出.

你能给我一个如何解决这个问题的提示吗?

debugging valgrind

16
推荐指数
4
解决办法
8425
查看次数

在Matlab中克隆图 - 具有属性和数据

我在matlab中编写了一个脚本,它可以生成一组数据.

这些数字在格式化方面应该非常相似,并且它们中的每一个都应该显示一组数据(它是嵌入在三维域中的图形).这些图中的每一个还应该在该3d域内显示一组粒子.

所以我想创建第一个数字,然后制作它的几个副本,并放入数据集.但是,我不知道,我怎样才能以简单的方式在Matlab中创建一个人物克隆.

你知道吗,我怎么克隆人物?

在线文档没有帮助.非常感谢你!

matlab

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

C++中的静态可变成员变量?

为什么或为什么不能在C++中声明类成员变量static mutable?就像是

static mutable int t; //This won't compile
Run Code Online (Sandbox Code Playgroud)

对我来说,没有理由禁止这种声明.例如,出于维护全局类范围统计的原因,可以方便地使用可由(逻辑上)const方法改变的静态变量.所以要么这在C++中是一种错误设计而且不必要地复杂化,或者有一个我看不到的实际或理论上的原因.

c++ static mutable member

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