小编Nat*_*man的帖子

在perl中自动获取foreach循环中的循环索引

如果我在Perl中有以下数组:

@x = qw(a b c);
Run Code Online (Sandbox Code Playgroud)

然后我用它迭代它foreach,然后$_将引用数组中的当前元素:

foreach (@x) {
    print;
}
Run Code Online (Sandbox Code Playgroud)

将打印:

abc
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法来获取当前元素的索引,而无需手动更新计数器?像这样的东西:

foreach (@x) {
    print $index;
}
Run Code Online (Sandbox Code Playgroud)

在哪里$index更新,$_以产生输出:

012
Run Code Online (Sandbox Code Playgroud)

perl foreach

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

在C++中的类初始值设定项中初始化const数组

我在C++中有以下类:

class a {
    const int b[2];
    // other stuff follows

    // and here's the constructor
    a(void);
}
Run Code Online (Sandbox Code Playgroud)

问题是,如何在初始化列表中初始化b,因为我无法在构造函数体内初始化它,因为b是const

这不起作用:

a::a(void) : 
    b([2,3])
{
     // other initialization stuff
}
Run Code Online (Sandbox Code Playgroud)

编辑:这个例子就是我可以b为不同的实例设置不同的值,但是已知这些值在实例的生命周期内是不变的.

c++ array-initialize initialization c++03

73
推荐指数
5
解决办法
12万
查看次数

如何使用ostream在c ++中打印unsigned char作为十六进制?

我想在C++中使用无符号的8位变量.关于算术的任何一个unsigned char或者uint8_t做的伎俩(这是预期的,因为AFAIK uint8_t只是一个别名unsigned char,或者调试器提出它.

问题是,如果我在C++中使用ostream打印出变量,它会将其视为char.如果我有:

unsigned char a = 0;
unsigned char b = 0xff;
cout << "a is " << hex << a <<"; b is " << hex << b << endl;
Run Code Online (Sandbox Code Playgroud)

然后输出是:

a is ^@; b is 377
Run Code Online (Sandbox Code Playgroud)

代替

a is 0; b is ff
Run Code Online (Sandbox Code Playgroud)

我尝试过使用uint8_t,但正如我之前提到的,那是typedef'ed unsigned char,所以它也是如此.如何正确打印变量?

编辑:我在我的代码中的许多地方都这样做.有没有什么办法可以做到这一点,而不铸造int我想打印每一次?

c++ formatting ostream

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

比较两个数组并获得不常见的值

我想要一个小逻辑来比较两个数组的内容,并使用powershell获取其中不常见的值

例如,如果

$a1=@(1,2,3,4,5)
$b1=@(1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

输出的$ c应该给出值" 6",这是两个数组之间不常见值的输出.

有人可以用同样的方式帮助我!谢谢!

arrays powershell

62
推荐指数
3
解决办法
18万
查看次数

我可以将程序的输出重定向到gvim吗?

我想将一些Windows程序的输出直接重定向到gvim,基本上是为了搜索输出.比如说findtr cmd的结果.是否可以在不将其转储到文件并随后在gvim中加载该文件的情况下执行此操作?

vim

43
推荐指数
2
解决办法
8085
查看次数

如何在C++中执行整数log2()?

在C++标准库中,我发现只有一个浮点日志方法.现在我使用log来查找二叉树中的索引级别(floor(2log(index))).

代码(C++):

int targetlevel = int(log(index)/log(2));
Run Code Online (Sandbox Code Playgroud)

我担心对于某些边元素(值为2 ^ n的元素),log将返回n-1.999999999999而不是n.0.这种恐惧是否正确?如何修改我的陈述以便始终返回正确的答案?

c++ logarithm floating-accuracy

41
推荐指数
7
解决办法
6万
查看次数

调用gdb以自动将参数传递给正在调试的程序

我想编写一个脚本(在某些条件下)将执行gdb并自动运行一些带有一些参数Y的程序X.一旦程序执行完毕,用户应该保持在gdb的提示符下,直到他/她显式退出它.

执行此操作的一种方法是让脚本将run命令加参数Y输出到某个文件F,然后让脚本调用gdb,如下所示:

gdb X < F
Run Code Online (Sandbox Code Playgroud)

但有没有办法在不引入临时文件的情况下执行此操作?

谢谢.

shell gdb

38
推荐指数
4
解决办法
5万
查看次数

Vim搜索所有现有的缓冲区

处理单个文件时,我习惯于:

/blah
do some work
n
do some work
n
do some work
Run Code Online (Sandbox Code Playgroud)

假设现在我想在Vim中加载的所有缓冲区中搜索一些模式,对它们做一些工作,然后继续.我将为此工作流程使用哪些命令?

vim

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

如何在Matlab或Octave中刷新disp的输出?

我在Octave中有一个程序有一个循环 - 运行一个带有各种参数的函数,而不是我可以变成矩阵的东西.在每次迭代开始时,我使用打印当前参数disp.

我第一次跑它时有一个很棒的警告,然后我也得到了这些打印件.现在我清理了它们,我不再看到它们了.我的猜测是他们被困在缓冲区中,当程序结束或缓冲区填满时我会看到它们.

有没有办法强制刷新打印缓冲区,以便我可以看到我的打印件?

matlab flush octave disp

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

在C/C++中为项目生成makefile的依赖项

我有一个项目,其中包含一个具有破坏依赖项的makefile.是否有任何最着名的方法来生成我可以在makefile中使用的项目的依赖项列表,而不是手动检查每个源文件或手写perl脚本?

c c++ dependencies makefile

34
推荐指数
4
解决办法
5万
查看次数