小编BCS*_*BCS的帖子

比O(n)glob匹配器好吗?

问题:给定一个globs列表,我需要从列表中找到(并返回)一个给定字符串匹配的glob或最终确定没有匹配的.不包括设置时间,性能必须优于所有的线性搜索水珠:

foreach glob in list:
  if glob.matches(string):
    return glob
return None
Run Code Online (Sandbox Code Playgroud)

问题:是否有可用的库(C++首选)?


编辑:经过一番思考,我想我可以说这可以做到.鉴于globs或多或少具有不同语法的正则表达式,使用glob语法的lex的运行时版本将符合要求.

鉴于问题可以简单地减少到已知问题,我仍然只对实施的解决方案感兴趣.

c++ algorithm glob

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

米勒 - 拉宾测试:我的代码中的错误

我根据以下伪代码编写了一个Miller-Rabin素性测试:

Input: n > 2, an odd integer to be tested for primality;
       k, a parameter that determines the accuracy of the test
Output: composite if n is composite, otherwise probably prime
write n ? 1 as 2s·d with d odd by factoring powers of 2 from n ? 1
LOOP: repeat k times:
   pick a randomly in the range [2, n ? 1]
   x ? ad mod n
   if x = 1 or x = n ? …
Run Code Online (Sandbox Code Playgroud)

d

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

我应该把"丑陋"放在哪里?

场景:我有一个我需要以某种方式调整的函数(例子;让它在不同的地方稍微有所不同).出于某种原因,我最终不得不在代码中添加丑陋的东西,无论是在函数中还是在现有的调用站点上.假设在两种情况下总和"丑陋"是相同的.

问题是我应该选择哪个选项?为什么?

我应该封装它,所以我不需要查看它,或者我应该提取它,以便它不会为函数添加语义垃圾?

什么会影响你的选择?如果:

  • 除了当前位置之外,"永远"不会调用该函数.
  • 对函数的新调用不需要"丑陋".
  • 该功能现在非常干净和通用
  • 该功能已经是一项黑客工作.
  • 你写了这个函数
  • 你没有怀疑这个功能
  • 等等

language-agnostic refactoring

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

在捕获异常时抛出异常

在VS调试器中,未捕获的异常导致程序在异常抛出(或接近足够)的点处中断,并且处于允许您查看所有堆栈帧以及到那时为止的局部变量的状态.

有没有办法获得相同的结果(抛出中断),但是在特定点捕获异常?对于所有异常甚至是给定类型的所有异常(这可能真的很快无用)我都不感兴趣,但是如果我可以单次尝试或捕获块我会很开心

有点相关:

c# debugging exception-handling visual-studio

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

如何选择bitflag值?

我有一组选项,一些正交(可以任意组合组合),一些独占(允许只允许一组),并需要选择一组enum值,以便它们可以按比特组合or并提取有点位and.我希望 - or无效组合是可检测的.

有没有像这样生成的工具enums

编辑清晰

我正在寻找能够利用某些标志组合无效以减少使用的位数的事实.我能够检测错误的要求是软的.如果事情被破坏,我不需要能够告诉我们使用了什么.

我正在使用C#,但任何解决方案都应该有用.

一个示例模式是:

0011 00
0101 00
1001 00
0110 00
1010 00
1100 00

0000 01
0000 10
Run Code Online (Sandbox Code Playgroud)

获得6个独占标志和一个2到6位的正交对

快速测试表明,5位给出9个值,6位给出20,...

language-agnostic code-generation bitflags bit-fields

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

时间/日期范围语法

我需要解析包含时间跨度的字符串,例如:

  • 周四6:30-7:30
  • 2009年12月30日 - 2010年1月1日
  • 1月15日下午7:30至8:30
  • 周四,从6:30到7:30
  • 和别的...

添加

  • 6:30到7:30

和日期/时间,例如Word的insert-> date可以生成的大多数情况

如果有任何内容涵盖了我需要涵盖的所有案例,我会感到非常惊讶,我正在寻找语法来开始.

grammar datetime parsing timespan

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

如何在c#中使用DateTime获取下个月的同一时间和日期

我有一个ac#DateTime对象,我需要将它增加一个月.

例:

input           output
-------------------------------
Jan 12, 2005    Feb 12, 2005
Feb 28, 2009    Mar 28, 2009
Dec 31, 2009    Jan 31, 2010
Jan 29, 2000    Feb 29, 2000
Jan 29, 2100    Error: no Feb 29, 2100
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么.

我的第一个想法(除了一些内置的代码)是从片段构建一个新的DateTime并自己处理滚动到年份

c# datetime

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

有没有办法将.NET程序集的特权访问权限授予另一个程序集?

我有一个类库程序集和一些测试代码.因为测试代码需要查看类的内部,它需要成为程序集的一部分,因为我不想让它全部由它自己运行,它需要公开的东西,以便不同的程序集可以调用它.这最终会解决一些不应该存在于主程序集中的代码.

我想要的是将所有测试代码放在另一个程序集中,并以某种方式授予它访问该类内部的权限.我不需要将它作为最终产品的一部分,就像调试/私有构建的一部分一样.

那可能吗?

.net clr accessibility

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

可脚本化的FTP客户端

我需要让脚本下载给定目录中的所有文件.我只有ftp访问权限.

快速测试显示我无法通过命令行与ftp客户端进行对话.即使在尝试了Arnshea的回答之后,它也拒绝从文件标准输入中读取密码.

即使登录后我也无法下载通配符.(固定mget,谢谢Arnshea)

尝试wget也失败了.

只要它很简单,我就可以使用Windows或Linux.

ftp scripting

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

Path.Combine的安全版本

我有一个rootPath我信任的relativePath,而我不信任.我希望以这样的方式组合它们,以确保结果不足rootPath并且用户不能使用它..来回到起点.我确实希望相对路径允许以下内容:hello\..\world==world

.net relative-path path-manipulation

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