我正在尝试评估不同的子串搜索(ala strstr)算法和实现,并寻找一些精心设计的针和干草堆字符串,它们将捕获最坏情况的性能和可能的角落错误.我想我可以自己解决这些问题,但我认为有人必须在某个地方找到很多测试用例...
我是红宝石的新手.有什么办法可以缩短这段代码吗?谢谢
plans.each do |plan|
total = plan.landline.to_f * @landline.to_f
total += plan.vpn.to_f * @vpn.to_f
total += plan.other_networks.to_f * @other_networks.to_f
total += plan.gprs.to_f * @gprs.to_f
total += plan.sms.to_f * @sms.to_f
total += plan.mms.to_f * @mms.to_f
total += plan.internat_calls_zone_1.to_f * @internat_calls_zone_1.to_f
total += plan.internat_calls_zone_2.to_f * @internat_calls_zone_2.to_f
if total < @total
@total = total
@plan_new = plan
end
end
Run Code Online (Sandbox Code Playgroud) 我目前正在使用cmake来构建一些项目,主要平台是Visual C++,MinGW GCC和Linux GCC.使用GCC构建时,我需要指定-Wno-invalid-offsetof编译器选项.
我目前的修复方法如下......
if ( "${CMAKE_GENERATOR}" MATCHES "^Visual Studio"
OR "${CMAKE_GENERATOR}" MATCHES "^NMake"
)
set (CPPLIB_COMPILER_OPTS "")
else ()
set (CPPLIB_COMPILER_OPTS "-Wno-invalid-offsetof")
endif ()
...
set_target_properties(sh_core PROPERTIES COMPILE_FLAGS "${CPPLIB_COMPILER_OPTS}")
# repeated for all targets
Run Code Online (Sandbox Code Playgroud)
这是有效的,但假设除了视觉工作室之外的所有生成器都将使用gcc构建,这显然是不安全的.首先,Borland编译器有IIRC发生器.更重要的是,使用make并不总是意味着使用gcc.
我可能使用的其他编译器是llvm-gcc和clang.幸运的是,我认为即使是clang也支持gcc兼容的选项.但只要相关代码永远不会发布,这种逻辑才有用.
Cmake似乎检查了可用的编译器,并专门为该编译器生成一个makefile(提出问题 - 为什么不至少可以选择直接构建项目,而不需要像make这样的中间人?).
既然如此,我希望能够在我的CMakeLists.txt文件中直接测试gcc.但到目前为止,我找不到合适的变量来测试或任何其他明显的解决方案.
这可能吗?
我很难在python中获取一些sql以正确浏览MySQLdb.它是pythons字符串格式化,正在杀死我.
我的sql语句使用带有通配符的LIKE关键字.我在Python中尝试了很多不同的东西.问题是,一旦我让其中一个工作,MySQLdb中的一行代码就是字符串格式.
尝试1:
"SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username LIKE'%% s%'"%(query)
这是不行的.我得到价值错误:
ValueError:索引128处不支持的格式字符'''(0x27)
尝试2:
"SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username LIKE'\ %% s \%'"%(query)
我从尝试1得到了相同的结果.
尝试3:
like ="LIKE'%"+ str(查询)+"%'"totalq ="SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user.username "+喜欢
这正确地创建了totalq变量,但是现在当我去运行查询时,我从MySQLdb获得错误:
文件"build/bdist.macosx-10.6-universal/egg/MySQLdb/cursors.py",第158行,执行查询=查询%db.literal(args)TypeError:格式字符串的参数不够
尝试4:
like ="LIKE'\%"+ str(查询)+"\%'"totalq ="SELECT tag.userId,count(user.id)as totalRows FROM user INNER JOIN tag ON user.id = tag.userId WHERE user …
我有一个字段定义为
<fieldType name="text_ws_lc" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
对于此类型的字段,在没有区分大小写的情况下搜索效果很好.但是我希望插入到字段中的原始值不是小写值.是否可以从索引分析器中删除LowerCaseFilterFactory并获得此功能?翼
<fieldType name="text_ws_lc_std" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud) 我正在使用NHibernate,我有两个映射我的DataBase模式的类:
public class A
{
public virtual int Id { get; set;}
public virtual List<B> MyList { get; set; }
}
public class B
{
public virtual int Id { get; set; }
public virtual DateTime Date { get; set; }
public virtual A FKtoA { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想得到表A的所有条目,它们的MyList属性的所有元素都具有小于给定值的Date.
我怎么能用优雅的NHibernate语法做到这一点?
我想在C++中做一个bitset.我做了一些研究.我找到的所有例子都是这样的:
bitset<6> myBitset;
// do something with it
Run Code Online (Sandbox Code Playgroud)
但是当我在我的类中定义变量时,我不知道bitset的大小:
#include <bitset>
class Test
{
public:
std::bitset *myBitset;
}
Run Code Online (Sandbox Code Playgroud)
这不会编译......
像这样初始化也不起作用:
int size = getDependentSizeForBitset();
myBitset = new bitset<size>();
Run Code Online (Sandbox Code Playgroud) 我是drupal的新手.我尝试在免费托管(德语)kilue.de上托管它.(apache,mysql5.0)为了测试我在本地做了什么,在网站上:1-我使用phpmyadmin创建数据库2 -I复制了我拥有的内容在/ var/ww下使用FTP
一旦我使用给定的uurl启动我的网站,我有这样的消息:
* warning: realpath() [function.realpath]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/data/multiserv/users/395147/projects/730411:/var/tmp/multiserv/users/395147/projects/730411:/data/apache/users/kilu.de/agbsite) in /data/multiserv/users/395147/projects/730411/www/includes/file.inc on line 190.
* warning: realpath() [function.realpath]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/data/multiserv/users/395147/projects/730411:/var/tmp/multiserv/users/395147/projects/730411:/data/apache/users/kilu.de/agbsite) in /data/multiserv/users/395147/projects/730411/www/includes/file.inc on line 787.
* warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File() is not within the allowed path(s): (/data/multiserv/users/395147/projects/730411:/var/tmp/multiserv/users/395147/projects/730411:/data/apache/users/kilu.de/agbsite) in /data/multiserv/users/395147/projects/730411/www/includes/file.inc on line 787.
* warning: fopen() [function.fopen]: Filename cannot be empty in /data/multiserv/users/395147/projects/730411/www/includes/file.inc on line 788. …Run Code Online (Sandbox Code Playgroud) 可以确定一个人在哪里,即他走路吗?他在电梯里吗?还是他爬上楼梯?
使用android的加速度计还是有没有其他方法来计算这样的android?