问题列表 - 第4173页

在try/finally外部或内部初始化一次性资源

我已经看到了两种获取和处理资源的方法.或者:

Resource resource = getResource();
try { /* do something with resource */ }
finally { resource.close(); }
Run Code Online (Sandbox Code Playgroud)

要么:

Resource resource = null;
try { resource = getResource(); /* do something with resource */ }
finally { if (resource != null) resource.close(); }
Run Code Online (Sandbox Code Playgroud)

我想知道哪种风格更可取.第一个避免if条件,而第二个(我假设)在赋值之后但在进入try块之前处理线程中止的情况.这些风格有什么其他优点和缺点?我最好使用哪一个?

c# java resources coding-style

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

在"添加/删除程序"中隐藏卸载程序?

我正在使用Visual Studio 2005创建Windows安装程序项目.

是否有一个选项使我的项目在添加/删除程序中没有卸载选项?

我的一位客户要求我这样做.. 这就是为什么:因为安装程序是现有程序的补丁.卸载后,程序不再有效,因为已卸载已修补的文件.我们想知道是否可以禁用卸载,而不是找出恢复替换文件的方法(我们无法使用此安装程序).

installation installer windows-installer uninstall

5
推荐指数
1
解决办法
8908
查看次数

使用UISlider更改音量

使用UISlider在应用程序中更改iPhone的音量的最佳方法是什么?


我试过使用那个Bill(使用UISlider来改变音量)

但是使用代码的屏幕上没有任何内容:

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:
                                CGRectMake(0, 0, 215, 22)] autorelease];
volumeView.center = CGPointMake(150,375);
[volumeView sizeToFit];
[self.view addSubview:volumeView];
Run Code Online (Sandbox Code Playgroud)

cocoa-touch

7
推荐指数
2
解决办法
2万
查看次数

SQL选择组的第n个成员

如果我有一个像USER这样的表

class | age
--------------
1       20    
3       56
2       11
1       12
2       20
Run Code Online (Sandbox Code Playgroud)

然后我可以轻松地通过每个班级获得最年轻的用户

select class, min(age)
from   user
group by class;
Run Code Online (Sandbox Code Playgroud)

同样,通过用max替换min,我可以得到最老的.但是我怎样才能获得每个班级中最年轻(或最老)的第10名?顺便说一下,我正在使用MySql v.5.0.

干杯,

mysql group-by

24
推荐指数
4
解决办法
1万
查看次数

运行Windows窗体应用程序作为服务?

我有一个我写的Windows窗体应用程序,它对收件箱和数据库进行了一些监视.客户告诉我,每次服务器重新启动时都需要运行.让我感到羞耻的是让客户改变了要求.

我在想...有没有办法让Windows Forms应用程序作为服务运行,以便它自动启动?

澄清

我想尝试不再编写任何代码......如果可能的话!

.net windows-services winforms

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

Lua - 以毫秒为单位的当前时间

是否有一种常见的方式来获取当前时间或以毫秒为单位?

os.time(),但它只提供整秒.

time lua

68
推荐指数
6
解决办法
10万
查看次数

就地基数排序

这是一篇很长的文字.请多多包涵.简而言之,问题是:是否有可行的就地基数排序算法


初步

我有很多小的固定长度字符串,只使用字母"A","C","G"和"T"(是的,你猜对了:DNA)我想要排序.

目前,我使用的是在STL的所有常见实现中std::sort使用introsort.这非常有效.但是,我相信,基数排序适合我的问题完全设置,并应工作在实践中更好.

细节

我已经用非常天真的实现来测试这个假设,并且对于相对较小的输入(大约10,000),这是真的(好吧,至少快两倍以上).但是,当问题规模变大(N > 5,000,000)时,运行时会出现严重下降.

原因很明显:基数排序需要复制整个数据(实际上我的天真实现不止一次).这意味着我已经将~4 GiB放入我的主内存中,这显然会影响性能.即使它没有,我也承担不起使用这么多内存,因为问题规模实际上变得更大.

用例

理想情况下,对于DNA和DNA5(允许额外的通配符"N"),甚至DNA与IUPAC 模糊代码(导致16个不同的值),此算法应该适用于2到100之间的任何字符串长度.但是,我意识到所有这些情况都无法涵盖,所以我对任何提速都感到满意.代码可以动态决定要分派的算法.

研究

不幸的是,关于基数排序维基百科文章是没用的.关于就地变体的部分是完全垃圾.关于基数排序NIST-DADS部分几乎不存在.有一篇名为Efficient Adaptive In-Place Radix Sorting的有前途的论文描述了算法"MSL".不幸的是,这篇论文也令人失望.

特别是,有以下几点.

首先,该算法包含几个错误,并留下了许多无法解释的问题.特别是,它没有详细说明递归调用(我只是假设它递增或减少一些指针来计算当前的移位和掩码值).同时,它采用了功能dest_groupdest_address没有给出定义.我没有看到如何有效地实现这些(即在O(1)中;至少dest_address不是微不足道的).

最后但并非最不重要的是,该算法通过使用输入数组内的元素交换数组索引来实现就地.这显然只适用于数值数组.我需要在字符串上使用它.当然,我可以只是强调打字并继续进行,假设内存可以容忍我存储一个不属于它的索引.但这只有在我将字符串压缩到32位存储器(假设32位整数)时才有效.这只有16个字符(暂时忽略16> log(5,000,000)).

其中一位作者的另一篇论文根本没有给出准确的描述,但它给出了MSL的运行时为次线性,这是错误的.

回顾一下:是否有希望找到一个工作的参考实现或至少一个良好的伪代码/描述工作就地基数排序,适用于DNA字符串?

language-agnostic sorting algorithm in-place radix-sort

197
推荐指数
6
解决办法
3万
查看次数

如何通过t-sql获取所有用户数据库的列表?

我想从mssql服务器实例获取所有用户数据库的列表.最好的方法是什么?

我知道我可以从sys.databases中进行选择,但除了硬编码要排除的名称列表之外,我没有看到任何方法来过滤掉系统数据库.

我需要脚本在2000/2005和2008上工作.

如果我上面列出的方法是唯一的方法,那么我应该排除哪些名称?我不知道2005年或2008年是否添加了任何新的系统数据库.

sql-server

12
推荐指数
5
解决办法
4万
查看次数

使用javascript键入时缩小项目列表

我试图找到一个插件或一个坚实的方法来缩小用户类型的项目列表.

基本上会有一个始终可见的列表,其中包含供用户滚动的产品名称.在底部将是一个表单,您可以在其中键入产品的名称.在您键入时,列表会缩小.

我一直试图找到一种方法来适应像jQuery UI的自动完成这样的方式,但有一些麻烦.

有没有人之前创造过这样的东西或有任何想法?

javascript forms jquery plugins autocomplete

8
推荐指数
2
解决办法
4874
查看次数

当cURL数据> 1024时,PHP HTTP POST失败

注意:最后的解决方案

如果我尝试执行超过1024个字符的HTTP POST,则会失败.为什么?这是一个最小的例子:

recipient.php:

<?php
if (strlen(file_get_contents('php://input')) > 1000
    || strlen($HTTP_RAW_POST_DATA) > 1000) {
 echo "This was a triumph.";
}
?>
Run Code Online (Sandbox Code Playgroud)

sender.php:

<?php
function try_to_post($char_count) {
 $url = 'http://gpx3quaa.joyent.us/test/recipient.php';
 $post_data = str_repeat('x', $char_count);
 $c = curl_init();
 curl_setopt_array($c,
                    array(  CURLOPT_URL => $url,
                            CURLOPT_HEADER => false,
                            CURLOPT_CONNECTTIMEOUT => 999,
                            CURLOPT_RETURNTRANSFER => true,
                            CURLOPT_POST => 1,
                            CURLOPT_POSTFIELDS => $post_data
                    )
 );
 $result = curl_exec($c);
 echo "{$result}\n";
 curl_close($c);
}

for ($i=1020;$i<1030;$i++) {
 echo "Trying {$i} - ";
 try_to_post($i);
}
?>
Run Code Online (Sandbox Code Playgroud)

输出:

Trying 1020 - …
Run Code Online (Sandbox Code Playgroud)

php post curl http

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