小编Dan*_*zer的帖子

在C++中将int设置为Infinity

我有一个int a需要等于"无限".这意味着如果

int b = anyValue;
Run Code Online (Sandbox Code Playgroud)

a>b 总是如此.

是否有任何C++功能可以实现这一目标?

c++ infinity

105
推荐指数
6
解决办法
16万
查看次数

在C++中增强了FOR循环

我正在从Java切换到C++,我想知道C++是否包含我在java中使用的增强for循环,例如:

int[] numbers = {1,2,3,4,5,6,7,8,9,10};
for (int item : numbers) {
  System.out.println("Count is: " + item);
}
Run Code Online (Sandbox Code Playgroud)

这是C++中可能的"快捷方式"吗?

c++ java for-loop

56
推荐指数
6
解决办法
3万
查看次数

Go的指针什么时候取消引用自己

我刚刚开始潜入Go,我有一个主要的困惑点:我很难理解何时需要明确地取消引用指针.

例如,我知道.操作符将处理解除引用指针

ptr := new(SomeStruct)
ptr.Field = "foo" //Automatically dereferences
Run Code Online (Sandbox Code Playgroud)

在其他情况下,这样做?例如,似乎有数组.

ptr := new([5][5]int)
ptr[0][0] = 1
Run Code Online (Sandbox Code Playgroud)

我一直无法在规范中找到这个,指针部分非常短,甚至没有触及解除引用.任何关于解除引用指针的规则的澄清都会很棒!

pointers go

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

在标量语境中展平Perl数组的方法

我最近开始学习perl并且有一个问题,我在互联网上找不到明确的答案.说我有这样的事情,

@arr = (1, 2, 3);
$scal = "@arr"
# $scal is now 123.
Run Code Online (Sandbox Code Playgroud)

是否使用引号来展平数组,以便每个元素都存储在标量值中?这似乎不太可能,但我还没有找到任何其他方法来做到这一点.提前致谢.

arrays perl

21
推荐指数
4
解决办法
6万
查看次数

我如何从haskell中的函数返回多个值?

Hifriends是否有可能函数返回多个值(例如字符串和布尔值)?如果是,那么我有一个名为concat的函数,它返回一个布尔值和一个字符串,但我不知道如何调用这些函数,因为我想存储它们.我写了一个非常大的代码.所以我无法发布它.enter code here

concat::(String->Int)->(IO Bool->IO String)
concat line i=do
       return True line
Run Code Online (Sandbox Code Playgroud)

你能帮我写一下函数签名以及如何调用这些函数吗?

我需要一个原型

谢谢

haskell

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

编译Haskell程序时出错

在具有GHC Haskell平台(2013.2.0.0)的WinXP(sp3)机器上,尝试编译代码会导致以下错误,除非有问题的文件包含在子目录中,即不是root('C:\'):

Prelude> :l doubleMe.hs
[1 of 1] Compiling Main             ( doubleMe.hs, interpreted )
*** Exception: CreateDirectory ".": permission denied (Access is denied.)
Run Code Online (Sandbox Code Playgroud)

有谁知道这是一个错误吗?如果是这样,它已经持续存在多个版本的GHC,我开始怀疑在Windows机器上的子目录中存储haskell代码是必要的.错误是否可以在*nix机器上重现?

谢谢.

〜凯特琳

windows haskell

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

澄清C++中的引用

所以我试图学习C++,我遇到了一些令我困惑的事情.我有代码,

int x = 0;
int &y = x;
cout << &x<< " " << x << " " << &y << " " <<y<< endl;
Run Code Online (Sandbox Code Playgroud)

这编译好并导致:

0 003AFA08 0 003AFA08
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么将x(一个int)转换为&y(引用)不会导致错误.起初我认为这是某种转换,但是,

int &y = &x;
Run Code Online (Sandbox Code Playgroud)

导致错误.

任何人都可以解释为什么这种方式有效吗?提前致谢.

c++ variables reference

6
推荐指数
2
解决办法
162
查看次数

减少一个结束迭代器

我今天正在阅读有关支持双向迭代的容器的方法,这段代码是有效的:

Collection c(10, 10);
auto last = --c.end();
*last;
Run Code Online (Sandbox Code Playgroud)

这让我想到,当提交一对双向迭代器[求,结束]到STL中的算法时,是否需要定义?end?如果是这样,结果是否可以解除引用?

void algo(T beg, T end){
    //...
    auto iter = --end;
    //...
    *iter;
} 
Run Code Online (Sandbox Code Playgroud)

c++ iterator stl

6
推荐指数
2
解决办法
5615
查看次数

gedit中的可折叠代码

如何折叠gedit中的函数,类或方法.我设法安装gedit的所有插件,但无法找到相同的插件.

linux editor gedit

5
推荐指数
2
解决办法
5934
查看次数

哈斯克尔 - 状态monad是势在思考的标志吗?

我正在写一个简单的游戏 - 俄罗斯方块.在我生命中我第一次使用函数式编程来实现这个目标,作为我选择Haskell的语言.然而,我被OOP和命令式思维所污染,害怕无意识地将这种心态运用到我的Haskell程序中.

在我游戏的某个地方,我需要有关于经过时间(计时器)和按下/向下键(键盘)的信息.转换为Haskell的SDL课程中使用的方法如下所示:

Main.hs

data AppData = AppData {
    fps :: Timer 
    --some other fields    
}

getFPS :: MonadState AppData m => m Timer
getFPS = liftM fps get

putFPS :: MonadState AppData m => Timer -> m ()
putFPS t = modify $ \s -> s { fps = t }

modifyFPSM :: MonadState AppData m => (Timer -> m Timer) -> m ()
modifyFPSM act = getFPS >>= act >>= putFPS
Run Code Online (Sandbox Code Playgroud)

Timer.hs

data Timer = Timer { …
Run Code Online (Sandbox Code Playgroud)

oop monads haskell state-monad game-engine

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