小编JAS*_*SON的帖子

在mac上编译C++ 11代码?

我是C++ 11的新手.我试过了:

clang++ -std=c++11 -stdlib=libc++ *.cc

它有效,但我的问题是:

  1. 无论如何将这些标志设置为clang ++的默认值?
  2. 如何将g ++ 4.2更新为支持C++ 11的版本?
  3. 你觉得哪种方式最好在mac上编译C++ 11代码?

谢谢.

c++ c++11

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

更新不可变对象

我有以下类:

class Player(val name: String, val onField: Boolean, val draft: Int, val perc: Int, val height: Int, val timePlayed: Int) {
override def toString: String = name
Run Code Online (Sandbox Code Playgroud)

}

我正在努力做到

def play(team: List[Player]): List[Player] =
team map (p => new Player(p.name, p.onField, p.draft, p.perc, p.height, p.timePlayed + 1))
Run Code Online (Sandbox Code Playgroud)

这实际上是将字段"timePlayed"递增1,并返回播放器的新"列表".

有更方便的方法吗?也许:

def play(team: List[Player]): List[Player] =
team map (p => p.timeIncremented())
Run Code Online (Sandbox Code Playgroud)

我的问题是如何以更方便的方式实现timeIncremented()?所以我不必这样做:

new Player(p.name, p.onField, p.draft, p.perc, p.height, p.timePlayed + 1)
Run Code Online (Sandbox Code Playgroud)

谢谢!

functional-programming scala purely-functional

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

检查对象的实际类型

我有:

class A class B : A class C : B class D : B

我有一个清单

C和D的实际对象存储在哪里。

如何检查List中的对象是否是B的子类型?

目前,我正在做item.GetType() == typeof(C) || item.GetType() == typeof(D)

这可行,但是如果我有两个以上从 B 继承的类怎么办?把它们全部写下来似乎是多余的。有没有办法检查该对象是否是 B 的子类型?谢谢!

c#

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

交叉引用类对象

我做了这样的事情:

struct Vertex {
  list<Edge*> edges;
};

struct Edge {
  Vertex* v1;
  Vertex* v2;
};
Run Code Online (Sandbox Code Playgroud)

和编译器错误:

'Edge'未在此范围内声明

如何在不将这两个标题放入单独的标题"vertex.h"和"edge.h"的情况下解决这个问题?

c++

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

允许的"队列"底层容器

队列允许的底层容器是什么?

在以下语法中:

queue<int, list<int> > q;
Run Code Online (Sandbox Code Playgroud)

列表是唯一允许的一个?(列表中,deque,vector)

谢谢!

c++

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