每次我在这里播客或阅读关于它的博客文章,即使在这里,他们也会听起来像字符串理论或其他东西.用类固醇依赖注射来描述OOP的最佳方法是什么?
每当有人试图解释它时,就像Aspects,[花生卡通声音的成人],正交,[更多噪音],交叉问题等等.说真的,任何人都可以用外行的术语来形容它.
我有一个包含一个表的数据库,如下所示:
UserID (int), MovieID (int), Rating (real)
Run Code Online (Sandbox Code Playgroud)
userID和movieID是大数字,但我的数据库只有许多可能值的样本(4000个唯一用户和3000个独特的电影)
我要对它进行矩阵SVD(奇异值分解),所以我想将这个数据库作为有序数组返回.基本上,我想按顺序返回每个用户,并为每个用户按顺序返回每个电影,然后返回该用户,电影对的评级,如果该用户没有评价该特定电影,则返回null.例:
USERID | MOVIEID | RATING
-------------------------
99835 8847874 4
99835 8994385 3
99835 9001934 null
99835 3235524 2
.
.
.
109834 8847874 null
109834 8994385 1
109834 9001934 null
etc
Run Code Online (Sandbox Code Playgroud)
这样,我可以简单地将这些结果读入二维数组,适合我的SVD算法.(将信息数据库转换为简单的二维浮点数组的任何其他建议将不胜感激)
重要的是按顺序返回,以便当我获得二维数组时,我将能够将值重新映射到相应的用户和电影以进行分析.
我在C++中使用了标准的异常处理方法.哪个是try {}和catch {}阻止.在我的代码中,func1()会抛出异常,而func2是这样的:
bool func2()
{
try{
func1();
}
catch(myException& e)
{
cerr << "error!" << endl;
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的代码时,会发生一件奇怪的事情.我从来没有达到抛出异常的代码,但是我总是在catch块中到达返回false的行(但是cerr <<从来没有到达行).然后函数继续返回true.我不知道原因是什么.任何人都可以帮我解决问题吗?非常感谢你!
我像这样使用GetWindowLong:
[DllImport("user32.dll")]
private static extern IntPtr GetWindowLong(IntPtr hWnd, int nIndex);
Run Code Online (Sandbox Code Playgroud)
但根据MSDN文档,我应该使用GetWindowLongPtr与64位兼容. http://msdn.microsoft.com/en-us/library/ms633584(VS.85).aspx
GetWindowLongPtr的MSDN文档说我应该像这样定义它(在C++中):
LONG_PTR GetWindowLongPtr(HWND hWnd, int nIndex);
Run Code Online (Sandbox Code Playgroud)
我曾经使用IntPtr作为返回类型,但是我将使用什么来替代LONG_PTR?我也看到在C#中将GetWindowLong定义为:
[DllImport("user32.dll")]
private static extern long GetWindowLong(IntPtr hWnd, int nIndex);
Run Code Online (Sandbox Code Playgroud)
什么是正确的,我如何确保正确的64位兼容性?
这出来是不可理解的.我会改写
是否有一种算法或方法允许以这样的方式对数组进行排序,从而最大限度地减少连续元素之间的差异?
struct element
{
uint32 positions[8];
}
Run Code Online (Sandbox Code Playgroud)
这些记录对顺序不敏感.
输出文件格式定义为:
byte present; // each bit indicating whether position[i] is present
uint32 position0;
-- (only bits set in Present are actually written in the file).
uint32 positionN; // N is the bitcount of "present"
byte nextpresent;
Run Code Online (Sandbox Code Playgroud)
所有记录都保证是唯一的,因此0的"当前"字节表示EOF.通过使用当前字段更新"当前"结构来解析文件,并将结果添加到列表中.
例如:{1,2,3},{
2,3,2 },{ 4,2,3 } 将:111b 1 2 3 001b 4 111b 2 3 2从未
排序的方法中保存2个数字.
我的目标是最小化输出文件大小.
这可能是非常基本的......但我似乎不明白:
如何
(2 & 1) = 0
(3 & 1) = 1
(4 & 1) = 0
Run Code Online (Sandbox Code Playgroud)
等等..
上面的这种模式似乎有助于找到偶数
或者
(0 | 1) = 1
(1 | 1) = 1
(2 | 1) = 3
(3 | 1) = 4
(4 | 1) = 5
(5 | 1) = 5
Run Code Online (Sandbox Code Playgroud)
我知道布尔代数是如何在位之间工作的。但我不明白布尔代数如何处理整数(至少在 C# 中)。
提前致谢。
public enum myEnum {
VAL1(10), VAL2(20), VAL3("hai") {
public Object getValue() {
return this.strVal;
}
public String showMsg() {
return "This is your msg!";
}
};
String strVal;
Integer intVal;
public Object getValue() {
return this.intVal;
}
private myEnum(int i) {
this.intVal = new Integer(i);
}
private myEnum(String str) {
this.strVal = str;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的枚举中,当我为VAL3添加一个常量特定的类体时会发生什么?
VAL3的类型绝对是myEnum的子类型,因为它有重载和其他方法.(类类型来自'myEnum $ 1')
但是编译器如何创建一个扩展myEnum的子类型枚举,因为所有枚举都已经扩展了java.lang.enum?
我正在开发一个使用Asp.net 3.5和Lucene.Net的.Net应用程序.我在一个asp.net数据网格中显示Lucene.Net给出的搜索结果.我需要为这个aspx页面实现Paging(每页10条记录).
如何使用Lucene.Net完成此操作?
有没有人在现实世界的应用程序中使用Bridge Pattern?如果是这样,你是如何使用它的?是我,还是仅仅是适配器模式,在混合中引入了一点依赖注入?它真的值得拥有自己的模式吗?
如何在全文SQL Server contains()查询中转义括号?我已经尝试了以下所有,但没有一个工作:
CONTAINS(crev.RawText, 'arg[0]')
CONTAINS(crev.RawText, 'arg[[0]]')
CONTAINS(crev.RawText, 'arg\[0\]')
Run Code Online (Sandbox Code Playgroud)
使用双引号确实有效,但它会强制整个搜索成为一个短语,这是一个多字查询的showstopper.
CONTAINS(crev.RawText, '"arg[0]"')
Run Code Online (Sandbox Code Playgroud)
我真正想做的就是逃避支架,但我似乎无法做到这一点......