在一个项目中,我在C++和一个使用stdbool.h的C库之间进行接口.
#ifndef _STDBOOL_H
#define _STDBOOL_H
/* C99 Boolean types for compilers without C99 support */
/* http://www.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html */
#if !defined(__cplusplus)
#if !defined(__GNUC__)
/* _Bool builtin type is included in GCC */
typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
#endif
#define bool _Bool
#define true 1
#define false 0
#define __bool_true_false_are_defined 1
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
一些结构有bool成员.因此,如果我将这些结构中的一个定义为C++函数中的局部变量并将其传递给C函数,则C++和C之间的大小不一致,因为bool在C++中是一个再见,在C中是4个.
有没有人有任何建议如何克服这个问题而不诉诸我目前的解决方案
//#define bool _Bool
#define bool unsigned char
Run Code Online (Sandbox Code Playgroud)
我需要过滤掉字符串中的锚标签.例如,
Check out this site: <a href="http://www.stackoverflow.com">stackoverflow</a>
我需要能够将锚标记过滤掉:
Check out this site: http://www.stackoverflow.com
那种格式也许不一定.锚标签可能还有其他属性.此外,字符串中可能有多个锚标记.我在进入数据库之前在vb.net中进行过滤.
我正在寻找将Java应用程序作为*NIX守护程序或Windows服务运行的最佳方法.我查看了Java Service Wrapper,Apache Commons项目'jsvc'和Apache Commons项目'procrun'.到目前为止,Java Service Wrapper看起来是最好的选择...但是,我想知道是否还有其他"开源友好"许可产品.
什么是Java Web开发世界中的Master Pages等价物?我听说过Tiles,Tapestry和Velocity,但对它们一无所知.它们和母版页一样易于使用吗?
我想要像设置一个模板一样简单,后续页面从模板派生并覆盖内容区域,类似于母版页.
任何例子都会很棒!!
我需要将两个基于Windows的非域计算机上的文件和文件夹保存在公共网络中.
我在想SSH over rsync - 但我想知道是否有更简单的解决方案?是否有可能在SFTP/SCP/SSH上使用同步框架?
或者我对更好的想法持开放态度?
我目前正在构建一个Java应用程序,最终可能会在许多不同的平台上运行,但主要是Solaris,Linux和Windows的变种.
有没有人能够成功提取信息,例如当前使用的磁盘空间,CPU利用率和底层操作系统中使用的内存?那么Java应用程序本身正在消耗什么呢?
我更希望在不使用JNI的情况下获取此信息.
我试图使用.NET正则表达式解析如下所示的字符串:
H3Y5NC8E-TGA5B6SB-2NVAQ4E0
Run Code Online (Sandbox Code Playgroud)
并使用Split返回以下内容:H3Y5NC8E TGA5B6SB 2NVAQ4E0
我根据特定字符集验证每个字符(请注意,字母'I','O','U'和'W'不存在),因此使用string.Split不是一个选项.每组中的字符数可以变化,组的数量也可以变化.我使用以下表达式:
([ABCDEFGHJKLMNPQRSTVXYZ0123456789]{8}-?){3}
Run Code Online (Sandbox Code Playgroud)
这将恰好匹配3组,每组8个字符.任何或多或少都会使比赛失败.只要它正确匹配输入,这是有效的.但是,当我使用Split方法提取每个字符组时,我只得到最后一组.RegexBuddy抱怨我已经重复了捕获组本身,我应该在重复组周围放置一个捕获组.但是,我没有尝试这样做能达到预期的效果.我一直在尝试这样的表达式:
(([ABCDEFGHJKLMNPQRSTVXYZ0123456789]{8})-?){4}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
由于我在代码中生成正则表达式,我可以通过组的数量来扩展它,但我希望有一个更优雅的解决方案.
请注意,字符集不包括整个字母表.它是产品激活系统的一部分.因此,可以删除任何可能被意外解释为数字或其他字符的字符.例如字母'I','O','U'和'W'不在字符集中.
连字符是可选的,因为用户不需要顶部输入,但如果用户完成了复制和粘贴,它们就可以在那里.
我为我的娱乐写了一个O(n!)排序,不能轻易优化以便在不完全替换它的情况下更快地运行.[不,我不只是将这些项目随机化,直到它们被排序].
我怎么可能写一个更糟糕的Big-O排序,而不仅仅添加可以被拉出以减少时间复杂度的无关垃圾?
http://en.wikipedia.org/wiki/Big_O_notation具有按生长顺序排序的各种时间复杂度.
编辑:我找到了代码,这里是我的O(n!)确定性排序,有趣的黑客生成列表的所有组合的列表.我有一个稍微长一点的get_all_combinations版本,它返回一组可迭代的组合,但不幸的是我无法将它作为单个语句.[希望我没有通过修复拼写错误并删除下面代码中的下划线来引入错误]
def mysort(somelist):
for permutation in get_all_permutations(somelist):
if is_sorted(permutation):
return permutation
def is_sorted(somelist):
# note: this could be merged into return... something like return len(foo) <= 1 or reduce(barf)
if (len(somelist) <= 1): return True
return 1 > reduce(lambda x,y: max(x,y),map(cmp, somelist[:-1], somelist[1:]))
def get_all_permutations(lst):
return [[itm] + cbo for idx, itm in enumerate(lst) for cbo in get_all_permutations(lst[:idx] + lst[idx+1:])] or [lst]
Run Code Online (Sandbox Code Playgroud) 我过去曾经使用过jdom,并简要地看过XOM和DOM4j.每个似乎提供了基本相同的东西,因为它们各自提供了(非常钝的)标准W3C DOM API的简化包装.
我知道JDOM在某一方面已经做了一些努力来开发JSR和标准化过程,但据我所知,努力从来没有去过任何地方.在过去几年中,所有项目似乎都处于停滞状态,几乎没有新的发展.
关于哪个是最好的,是否有共识?每个的优点和缺点是什么?