我试图解决一个更大的问题,我认为该程序的一个重要部分是花在低效计算上.
我需要计算给定数N,区间[P,Q],其中P是<=到N的最大斐波纳契数,而Q是> =到N的最小斐波纳契数.
目前,我正在使用地图来记录斐波纳契数的值.查询通常涉及搜索最多为N的所有斐波纳契数,并且它不是非常节省时间,因为它涉及大量的比较.
这种类型的查询将在我的程序中经常出现,我对可以改进查找的方式感兴趣,最好是使用子线性复杂性.
这似乎是一个初学者的问题,但我对编译器通常创建变量维数组的方式感兴趣,就像在下面的程序中一样.
#include<iostream>
int main(){
int n;
std::cin>>n;
int a[n];
}
Run Code Online (Sandbox Code Playgroud)
根据我的学习,在C中,所有初始化值都必须是常量,这样编译器就知道要在函数内保留多少内存,通常是通过减去堆栈指针来容纳数组所包含的元素数.
这对我来说很有意义.但是,我不太明白编译器如何处理上述程序,因为它似乎与G ++(MinGW)一起工作,但是在C,Microsoft的C++编译器中失败了.我怀疑GCC通过非标准扩展在堆上分配内存,但我不确定.
此外,微软的编译器并不因标准兼容而闻名,所以如果它对待上述程序的方式实际上可能出错,我也不会感到惊讶.
对不起,相当长的帖子.
我需要一些关于我将要进行的项目的意见.
我正在尝试创建一个应用程序,它从位于VmWare虚拟机内的来宾Linux操作系统收集内核调试信息,并有效地将它们发送到主机操作系统.
到目前为止,我已经找到了一个类似的项目,但是为Windows编写[1].该项目的作者编写了一个加载到内存中的DLL,并替换了KdSendPacket和KdReceivePacket函数的实现,以使用VmWare GuestRpc [2]机制,而不是慢速串行端口.然后通过命名管道将数据发送到主机(Kd或WinDbg)上的调试应用程序.
作者声称,通过避免串口传输,速度提高了45%.
我试图实现类似的东西,但对于Linux,并尝试使调试过程比使用串行端口快一点.
我的具体问题是:
[1].http://virtualkd.sysprogs.org/dox/operation.html
[2].http://articles.sysprogs.org/kdvmware/guestrpc.shtml
[3].http://www.kernel.org/doc/Documentation/networking/netconsole.txt
我很难找到以下代码无法编译的好理由.它给了我以下错误.
错误2错误C2923:'std :: pair':'std :: set :: iterator'不是参数'_Ty1'的有效模板类型参数
我需要一点见解,为什么C++不允许我在函数声明中使用template参数,因为我使用set <int> :: iterator而不是set <T> :: iterator程序可以工作.
#include<iostream>
#include<set>
using namespace std;
template <typename T>
void print(const pair< set<T>::iterator, bool> &p) //<- Here is the problem
{
cout<<"Pair "<<*(p.first)<<" "<<p.second<<"\n";
}
int main() {
set<int> setOfInts;
setOfInts.insert(10);
pair<set<int>::iterator, bool > p = setOfInts.insert(30);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用java ant来为某些实体生成证书和密钥库,稍后我将在java应用程序中使用它.该应用程序仅用于学习目的,我知道以纯文本格式存储密码是一个坏主意.
我正在使用的命令是:
<exec command="keytool -genkey -alias test -keyalg DSA -keysize 1024
-keystore keyst.ks -keypass pass -storepass pass -dname "
CN=Duke, OU=MyUnit, O=MyOrg, C=US""/>
Run Code Online (Sandbox Code Playgroud)
虽然命令按预期工作,但在每行后我都会收到几条警告:
Run Code Online (Sandbox Code Playgroud)[exec] The command attribute is deprecated.
[exec] Please use the executable attribute and nested arg elements.
Run Code Online (Sandbox Code Playgroud)
我很好奇是否有任何办法可以压制这些警告,除了不使用嵌套的args.该脚本生成大量文本输出,警告使得跟踪输出更加困难.
我在编写Redmine插件时遇到验证问题.
我正在为问题模型编写一个钩子,作为钩子方法的一部分,我想通过添加自定义错误来使问题的创建无效:
def controller_issues_new_before_save( context = { } )
context[:issue].errors.add(:due_date, "A custom error")
end
Run Code Online (Sandbox Code Playgroud)
出于测试目的,我编写了一个覆盖Issue.validate_on_create的补丁,但似乎每次输入validate_on_create时errors.count都设置为零.
我需要停止创建问题对象,但仅限于将属性设置为另一个模型对象时.
我想在validate_on_create方法中写这个,但是我需要将它传递给另一个对象.
我想到的第一个解决方案是在Issue模型中插入一个额外的字段,并在钩子内修改它.
就像是 :
def controller_issues_new_before_save( context = { } )
context[:issue].can_validate = false
end
def validate_on_create
unless can_validate
errors.add("error", "A custom error")
end
end
Run Code Online (Sandbox Code Playgroud)
其中Issue.can_validate是Issue模型的补充
但是,这似乎不是最好的方法.有没有更简单的方法?
我是Prolog世界的新手,我想编写一条返回特定范围内所有元素的规则.
我打算做点什么
例如:
foo(X, Low, High) :- X > Low, X < High.
Run Code Online (Sandbox Code Playgroud)
当我输入foo(X,2,5)时,它应该返回3,然后是4.
看来我的方法是错误的,我想知道哪种方法是正确的.
我为Redmine创建了一个插件,现在很难为它编写测试用例.我没有使用像rspec这样的任何框架,只是rails提供的默认断言.
我首先通过ruby解释器运行文件来运行我的测试.这没有加载灯具,所以我找到了另一种选择:我将灯具文件复制到$ {redmine_root}/test/fixtures,来自$ {redmine_root}/vendor/plugins/my_plugin/test/fixtures,运行rake db:fixtures:加载,现在加载它们.
我正在测试的控制器具有在init.rb中设置的权限,并且需要对某些操作进行授权.
虽然我以特权用户(Admin)的身份打开会话,但我无权在控制器中执行操作,不知何故它在测试开始时没有加载权限.
我已经在roles.yml中手动添加了权限,并确保用户具有相应的角色,但同样没有.该插件运行良好,我只在测试时遇到这些问题.如果我在我的控制器中使用before_filter:authorize注释该行,则测试通过.
我错过了什么吗?init.rb的权限是存储在不同的位置,还是在测试阶段以不同方式加载?
我正在尝试制作一个使用jquery的Redmine插件.
当我在视图中添加以下行时,我会遇到冲突:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
Uncaught TypeError: Cannot call method 'hasChildNodes' of undefined
prototype.js:5734
Uncaught TypeError: Object [object Object] has no method 'dispatchEvent'
prototype.js:828
Uncaught TypeError: Object [object Object] has no method 'attachEvent'
Run Code Online (Sandbox Code Playgroud)
视图是一个钩子.
如果我删除它<script src="">
,它的工作原理,但我没有使用jQuery.