小编sep*_*p2k的帖子

工厂类

就个人而言,我从未理解工厂类的想法,因为直接实例化一个Object似乎更有用.我的问题很简单,在什么情况下使用工厂类模式是最佳选择,出于什么原因,以及良好的工厂类是什么样的?

java oop factory object

51
推荐指数
3
解决办法
5万
查看次数

用g ++编译c ++ 14代码

我在Ubuntu 14.04 LTS上使用g ++ 4.8.4.当尝试使用'-std = c ++ 14'进行编译时,我收到此错误:

g++: error unrecognized command line option '-std=c++14'
Run Code Online (Sandbox Code Playgroud)

使用'-std = c ++ 11'编译工作正常,所以我不确定发生了什么.g ++真的不支持c ++ 14吗?我使用错误的命令行选项吗?

我使用"sudo apt-get install g ++"应该会自动检索最新版本,这是正确的吗?

c++ g++ ubuntu-14.04 c++14

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

在命令提示符下运行C++ - Windows

我知道现在每个人都使用IDE,但我发现在notepad ++中编写代码更简单,使用命令提示符命令编译它,并从那里运行它.至少适用于Java和Python.我试图了解如何使用C++做到这一点,并且无法找到任何好的东西.是否有任何编译器(如Java的JDK),我可以坚持到我的路径并使用C++等效的javacjava运行和编译我的CMD代码?

注意:请不要发布关于IDE如何更好的答案和评论 - 我知道它们是.我以前习惯这样做:D

c++ windows command-line

50
推荐指数
7
解决办法
36万
查看次数

双下划线(__const)在C中意味着什么?

extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
 __THROW;
Run Code Online (Sandbox Code Playgroud)

我在Linux机器上的/usr/include/netinet/ether.h中找到了上面的函数定义.

有人可以在const(关键字),addr(标识符)和最后__THROW前面解释双下划线的含义.

c syntax double-underscore

48
推荐指数
2
解决办法
4万
查看次数

在C++ 11中,sqrt被定义为constexpr?

在C++ 11中std::sqrt定义为constexpr,即它可以合法地从其他constexpr函数或编译时上下文中使用,如数组大小或模板参数吗?g ++似乎允许它(使用-std=c++0x),但我不确定我是否可以将其视为权威,因为c ++ 0x/c ++ 11支持仍然不完整.我似乎无法在互联网上找到任何东西的事实让我不确定.

看起来这应该是人们可以轻易找到使用谷歌的东西,但我已经尝试过(现在40分钟......)并且找不到任何东西.我可以找到几个建议,将constexpr添加到标准库的各个部分(例如这个),但没有关于sqrt或其他数学函数.

c++ constexpr c++11

39
推荐指数
6
解决办法
1万
查看次数

在c#中默认是私有的方法吗?

如果我有一个没有指定其可访问性级别的方法,它默认是私有的吗?

void Item_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
    throw new NotImplementedException();
}        
Run Code Online (Sandbox Code Playgroud)

以上方法是私有的吗?

c#

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

25
推荐指数
2
解决办法
4万
查看次数

SonarQube 显示正则表达式拒绝服务 (ReDoS)

我在 JavaScript 中使用正则表达式验证日期,但是当我运行 SonarQube 进行代码分析时。它将正则表达式显示为一个安全漏洞。

示例1:

以下是正则表达式模式(链接到正则表达式来源/sf/answers/1085341421/):

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
Run Code Online (Sandbox Code Playgroud)

示例2:

对于浮动值,我使用了下面的正则表达式

^\d{1,5}(?:\.\d{1,5})?$
Run Code Online (Sandbox Code Playgroud)

SonarQube 抛出相同的安全错误,我尝试了各种不同的正则表达式模式,但它不起作用。

javascript regex sonarqube

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

如何在为变量分配值的同时引用变量,同时保留不变性?

我在周日下午摆弄着,正试图创造一种"房间"结构.基本上,一个Room对象有许多出口,每个出口都指向其他Room的出口.现在,我要创建的第一件事是两个Room相互连接,最好是在一个赋值语句中.像这样:

case class Room(title: String, exits: Map[Direction.Direction, Room])

val firstRoom = Room("A room", Map(North -> Room("Another room", Map(South -> firstRoom))))
Run Code Online (Sandbox Code Playgroud)

Ergo:第一个房间有一个出口North到第二个房间,第二个房间有一个出口South回到第一个房间.

但是,正如您可以想象的那样,这是错误的:firstRoom在创建val时未定义val,因此在分配期间尝试引用它将不起作用.

对于大多数(如果不是全部)编程语言,我很确定这是正确的.我的问题:如何在使我的Room对象变为可变的情况下解决这个问题?我可以简单地创建一些Room对象并在之后添加出口,但这使得Rooms 变得可变,并且作为个人练习我试图避免这种情况.

scala immutability

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

如何使用<random>在多种类型的编译器和内核上生成相同的随机数序列?

问题

我需要在不同的机器和编译器上生成相同的(伪)随机数序列.如果我使用相同的内核,似乎g ++中的mersenne twister(MT)的实现效果很好:无论我是在新机器上编译我的程序,使用g ++ 4.9或4.7,我都得到相同的随机数.但是如果我使用较旧的内核或者我改用Visual Studio的编译器,我会得到不同的.没关系,因为没有保证可以mersenne_twister_engine::seed将内部状态设置为不同的编译器.

我已经尝试过的

我认为应用于operator<<发生器会产生一个独特的结果,可以用来设置其他机器上的发生器operator>>,但是如果mt19937它似乎不起作用.为了说清楚,在计算机上AI有代码

mt19937 generator1A;
uniform_int_distribution<int> distribution(0, 1000);

cout << "Generating random numbers with seed 1000" << endl;

generator1A.seed(1000);
generator1A(); //to advance the state by one so operator>> will give a longer output; this is not necessary indeed
ofstream test("testseed1000.txt");
test << generator1A << endl;

for (int i = 0; i < 10; ++i)
    cout << distribution(generator1A) << endl;
Run Code Online (Sandbox Code Playgroud)

它产生252,590,893,......和一个长文件.我将文件传输到另一台机器B,并运行以下代码:

mt19937 generator1B, generator2B;
uniform_int_distribution<int> distribution(0, 1000); …
Run Code Online (Sandbox Code Playgroud)

c++ random c++11

18
推荐指数
2
解决办法
1778
查看次数