小编cur*_*rer的帖子

通过引用传递函数指针

您好我正在尝试学习C/C++中的一些函数指针,我试图在Ubuntu上用gcc编写以下C++代码.

此代码应执行multiply或add函数,具体取决于编译期间提供的预处理程序标志-DADD或-DMULTIPLY

#include <iostream>
#include <iomanip>
//Adds two numbers
int add(int a, int b)
{
  return a+b;
}
//Multiplies two numbers
int multiply(int a, int b)
{
  return a*b;
}

//Function to set the correct function to be executed.
//All functions here should have the same signature.
void functionsetter( void (*ptr2fun)(int,int)  )
{
#ifdef ADD
  ptr2fun   = add;
#endif

#ifdef MULTIPLY 
   ptr2fun  = multiply
#endif
} 

int main(int argc, char *argv[])
{
  int a = 5;
  int b = 6; …
Run Code Online (Sandbox Code Playgroud)

c++

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

如何告诉emacs将某些表达式从第x行插入到第y行

在我的一些编程中,最近,我经常不得不手动输入long的值std::vector.所以对于大小为30的矢量,我必须继续打字

myvec[0]=1.0;
myvec[1]=4.6;
myvec[2]=6.7;
myvec[3]=7.8;
.
.
myvec[29]=87;
Run Code Online (Sandbox Code Playgroud)

我使用Emacs作为文本编辑器.是否有可能在Emacs中以某种方式指定从第30行到第59行插入行

myvec[0]= ;
myvec[1]= ;
myvec[2]= ;
.
.
myvec[29]= ;  
Run Code Online (Sandbox Code Playgroud)

当然,必须手动输入向量的各个值,但它会myvec[]一次又一次地为我节省大量的打字或复制/粘贴.

emacs

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

在文件中包含所有模板库

在我的一些编码工作中,我已经使用了一些模板库,如Boost和Thrust(用于CUDA).

要使用Boost库的某个功能,必须包含boost::lexical_cast我必须使用的相应header.eg boost/lexical_cast.hpp.为我的项目使用的Boost/Thrust的每个新功能保留适当的标题是很累人的.

是否有任何"快捷方式"告诉预处理器包含存储在boost库下的所有头文件,这样我就不用担心要包含哪个头文件了?

我在Ubuntu下使用GCC.

c++ boost header

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

Octave和MATLAB中匿名函数的奇怪行为

嗨,我很好奇为什么我用MATLAB和Octave得到以下行为

octave:7> pdf = @(x) (0<=x && x<1).* (x) + (1<=x && x <=2).* (2-x);  
octave:8> 
octave:8> t = 0:0.1:1;
octave:9> 
octave:9> y = pdf(t)
y =

   0   0   0   0   0   0   0   0   0   0   0

octave:10> 
Run Code Online (Sandbox Code Playgroud)

我用MATLAB得到了相同的行为,即y是零向量.

但是,如果我添加以下for循环

for i=1:size(t,1) 
  y(i) = pdf(t(i))
end
Run Code Online (Sandbox Code Playgroud)

然后我得到了正确的结果.

 Columns 1 through 19:

 0.00000   0.10000   0.20000   0.30000   0.40000   0.50000   0.60000   0.70000   0.80000   0.90000   1.00000   0.90000   0.80000   0.70000   0.60000   0.50000   0.40000   0.30000   0.20000

 Columns 20 and 21:

   0.10000   0.00000
Run Code Online (Sandbox Code Playgroud)

matlab octave

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

标签 统计

c++ ×2

boost ×1

emacs ×1

header ×1

matlab ×1

octave ×1