小编Asl*_*986的帖子

何时在C++中使用extern

我正在阅读"用C++思考",它刚刚介绍了这个extern声明.例如:

extern int x;
extern float y;
Run Code Online (Sandbox Code Playgroud)

我想我理解了意义(没有定义的声明),但我想知道什么时候它有用.

有人能提供一个例子吗?

c++ variable-declaration

372
推荐指数
4
解决办法
35万
查看次数

比较R中的两个列表

我有两个ID列表.

我想比较两个列表,特别是我对以下数据感兴趣:

  • 列表A和B中有多少个ID
  • A中有多少个ID,但B中没有
  • B中有多少个ID,但A中没有

我也想画一个维恩图.

r venn-diagram

54
推荐指数
3
解决办法
7万
查看次数

运营商超载

我想定义一个+-+在这里工作的运算符(调用它):

if a,b are Char    => a +-+ b = [a][b]
if a,b are Integer => a +-+ b = a+b
Run Code Online (Sandbox Code Playgroud)

我尝试过:

class Summable a where
    (+-+)       :: a -> a -> b

instance Summable Integer where
    a +-+ b     = a + b

instance Summable Char where
    a +-+ b     = [a] ++ [b]
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

Couldn't match type `b' with `Integer'....
Couldn't match type `b' with `[Char]' ....
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点?怎么样?

haskell operator-overloading

18
推荐指数
1
解决办法
677
查看次数

如何在C++中使用GetProcessMemoryInfo?

我试图使用功能GetProcessMemoryInfopsapi.hC++应用程序内部的Windows 7 32位.

我按照一些教程,做了类似的事情:

PPROCESS_MEMORY_COUNTERS pMemCountr;

pMemCountr = new PROCESS_MEMORY_COUNTERS();
bool result = GetProcessMemoryInfo(GetCurrentProcess(),
                                   pMemCountr,
                                   sizeof(PPROCESS_MEMORY_COUNTERS));
Run Code Online (Sandbox Code Playgroud)

问题是我总是从执行GetProcessMemoryInfo()方法中获得"假" .我在这做错了什么?

c++ winapi memory-management

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

在ghci中命令ls或dir

我是Haskell的新手.

我正在使用ghci.我知道我可以通过命令移动目录:cd <dir>.但我找不到命令列出目录中的文件(如Unix ls或Microsoft dir).

是否可以在GHCI中进行?

谢谢

haskell ghci

12
推荐指数
2
解决办法
5688
查看次数

Scheme和Racket有什么不同?如果是这样,怎么样?

我注意到人们经常表现得像Stack Overflow上的Scheme和Racket一样(以及网络上的其他地方.例如,关于Scheme的问题经常在Racket中生成解决方案.如果你看一下标记的问题,你会看到他们的答案的一半开始#lang racket.

这两种语言真的如此相似,以至于它们可以被认为是平等的吗?Racket只是Scheme的扩展(即Scheme代码总是在Racket解释器上运行)?

我想强调一个事实,即这不是一个论战,只是一个学习Scheme编程语言的人的问题.

scheme racket

9
推荐指数
2
解决办法
2536
查看次数

std :: threads在用户或内核空间中管理?

正如我在标题中所写,我想知道c ++ stantard线程是在用户还是内核空间中进行管理.

谢谢.

c++ multithreading c++11

9
推荐指数
1
解决办法
2024
查看次数

在构造上初始化一个float数组

在C++中有没有办法构造一个初始化它的值的浮点数组?

例如,我做:

float* new_arr = new float[dimension];
for(unsigned int i = 0; i < dimension; ++i) new_arr[i] = 0;
Run Code Online (Sandbox Code Playgroud)

在建筑期间可以进行任务吗?

c++

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

用Lisp编写正式的语言解析器

我的公司正在设计一种新的特定于域的脚本语言; 我必须实现一个解析器,将我们全新的编程语言转换为通用的脚本语言,以便能够实现它.

我这样做的通常方法是通过生成翻译器代码的工具BisonFlex工具C/C++.

对于大多数主流编程语言,我找到了其他工具,但没有找到Lisp.

没有Lisp曾经被使用是什么?编写解析器的常用方法是什么Lisp

注意:对我来说,任何Lisp可能有帮助的实现/方言都可以,我没有任何偏好.

lisp scheme formal-languages racket

9
推荐指数
3
解决办法
4653
查看次数

longjmp如何运作?

我需要了解longjmp函数如何工作; 我知道它的作用,但我需要知道它是如何做到的.

我试图在gdb中disas代码,但我无法理解一些步骤.代码是:

0xb7ead420 <siglongjmp+0>:      push   %ebp
0xb7ead421 <siglongjmp+1>:      mov    %esp,%ebp
0xb7ead423 <siglongjmp+3>:      sub    $0x18,%esp
0xb7ead426 <siglongjmp+6>:      mov    %ebx,-0xc(%ebp)
0xb7ead429 <siglongjmp+9>:      call   0xb7e9828f <_Unwind_Find_FDE@plt+119>
0xb7ead42e <siglongjmp+14>:     add    $0x12bbc6,%ebx
0xb7ead434 <siglongjmp+20>:     mov    %esi,-0x8(%ebp)
0xb7ead437 <siglongjmp+23>:     mov    0xc(%ebp),%esi
0xb7ead43a <siglongjmp+26>:     mov    %edi,-0x4(%ebp)
0xb7ead43d <siglongjmp+29>:     mov    0x8(%ebp),%edi
0xb7ead440 <siglongjmp+32>:     mov    %esi,0x4(%esp)
0xb7ead444 <siglongjmp+36>:     mov    %edi,(%esp)
0xb7ead447 <siglongjmp+39>:     call   0xb7ead4d0
0xb7ead44c <siglongjmp+44>:     mov    0x18(%edi),%eax
0xb7ead44f <siglongjmp+47>:     test   %eax,%eax
0xb7ead451 <siglongjmp+49>:     jne    0xb7ead470 <siglongjmp+80>
0xb7ead453 <siglongjmp+51>:     test   %esi,%esi
0xb7ead455 <siglongjmp+53>:     mov    $0x1,%eax
0xb7ead45a <siglongjmp+58>:     cmove …
Run Code Online (Sandbox Code Playgroud)

c linux security assembly

8
推荐指数
3
解决办法
2697
查看次数