我的git在同一个分支中有两个标签.它们之间至少有5-6个提交.如何在两个标签之间创建一个补丁,以便它可以应用于GitHub存储库?
在MATLAB中学习有效编程的第一件事就是避免动态调整数组大小.标准示例如下.
N = 1000;
% Method 0: Bad
clear a
for i=1:N
a(i) = cos(i);
end
% Method 1: Better
clear a; a = zeros(N,1);
for i=1:N
a(i) = cos(i)
end
Run Code Online (Sandbox Code Playgroud)
这里的'Bad'变量需要运行O(N^ 2)时间,因为它必须分配一个新数组并在循环的每次迭代中复制旧值.
调试时我自己的首选做法是分配一个数组NaN,更难以与有效值混淆0.
% Method 2: Easier to Debug
clear a; a = NaN(N,1);
for i=1:N
a(i) = cos(i)
end
Run Code Online (Sandbox Code Playgroud)
然而,人们会天真地认为,一旦我们的代码被调试,我们就会浪费时间分配一个数组,然后用0或填充它NaN.如前所述在这里,你可以按如下也许创建一个未初始化数组
% Method 3 : Even Better?
clear a; a(N,1) = 0;
for i=1:N
a(i) = cos(i); …Run Code Online (Sandbox Code Playgroud) 我希望能够在GitHub上查看自己的请求请求。
这样做的动机是,一旦其他N-1个维护者批准,就允许N个维护者中的最后一个合并合并请求。这样,任何人都可以推动承诺并使包括我的现有批准无效。
是否有启用此功能的选项?
我想使用旺盛的ctags.但是,在OS X 10.9上,默认似乎是调用不同的二进制文件,
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags
我可以很容易地从MacPorts获得丰富的ctags
sudo port install ctags
,我的路径似乎设置正确,允许使用新的二进制文件/opt/local/bin(我的路径中的第一个位置)
$ which ctags
/opt/local/bin/ctags
Run Code Online (Sandbox Code Playgroud)
但是,执行ctags仍然调用里面的版本XCode.app.我当然可以使用
which ctags
并使用其完整路径调用正确的二进制文件,但我很困惑为什么路径似乎没有像它应该的那样工作.
为什么which在这种情况下实际上没有指定将执行哪个二进制文件的结果?
更新:启动新的bash shell解决了该问题.据推测,可执行文件的名称已缓存在某个地方,但我怎样才能防止将来发生这种情况?
我想对(GNU)生成文件添加快速检查,以提醒用户-j/ --jobs(并行生成)的可用性。也就是说,类似
$ make
TIP: this will build faster if you use use "make -j"
Building ..
$ make -j
Building in parallel ..
Run Code Online (Sandbox Code Playgroud)
执行Makefile时,如何确定并行作业的数量?
这里有个窍门 http://blog.jgc.org/2015/03/gnu-make-insanity-finding-value-of-j.html
以及对GNU的建议更改在此处 https://github.com/esantoro/make/commit/b0334e7f3009dc58dbc8e6e6fdec94711537fb3b
但是也许有些更新和/或更容易的东西。
我有一段以下形式的代码:
typedef enum {A=1,B} EnumType;
int foo (EnumType x)
{
int r;
switch (x) {
case A:
r = 1;
break;
case B:
r = 2;
break;
/*
default:
r = -1;
break;
*/
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
我用GCC 6.3.0编译并收到警告:
$ gcc --version
gcc (MacPorts gcc6 6.3.0_2) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ …Run Code Online (Sandbox Code Playgroud) 我正在使用模板化类,我想包含固定大小的数据数组,其大小取决于模板参数。一个简化的例子是
template<int D>
class Foo
{
private:
int m_array[D*(D+1)];
};
Run Code Online (Sandbox Code Playgroud)
虽然可变大小的 C 数组通常不受欢迎是可以理解的,但在这里它们可能是合理的,因为D它很小并且很清楚有多少值m_array保存(并且它不能改变大小)。我的问题是
std::vector并在构造函数中设置大小,我认为这会使代码不太清楚。是否最好使用 C++11 的std::array,从而将上面示例中的相关行更改为std::array<int,D*(D+1)> m_array;?如果我知道传递给函数或子例程的数组的等级和/或大小,是否有任何理由使用假定形状或假定大小的数组?例如,如果我可以替换
function f(a,m,n)
real,dimension(*),intent(inout) :: a
! ...
end function
Run Code Online (Sandbox Code Playgroud)
同
function f(a,m,n)
real,dimension(m,n),intent(inout) :: a
! ...
end function
Run Code Online (Sandbox Code Playgroud)
是否有任何理由(在Fortran 90或更高版本中)不这样做?