小编Sex*_*ast的帖子

为什么SQL Server将4字节整数添加到非唯一聚簇索引

可以将非唯一列定义为聚簇索引以及非聚簇索引.但是,如果未将列定义为唯一,则SQL Server会在聚簇索引的情况下向索引列添加4字节整数.这样做是为了在内部保持记录的"唯一性",即使两个或多个记录可能具有该列的值.为什么在非聚集索引的情况下不需要这个整数?

sql-server indexing clustered-index non-clustered-index

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

Java正则表达式抛出错误

我试图从文本中捕获一定数量的块.假设文本是Kane高12345英尺.我想抓住12345.我想用这个:

import java.util.regex.Pattern; 
import java.util.regex.Matcher; 
String text = "Kane is 12345 feet high";
Pattern p = Pattern.compile("Kane is (\\d+) feet high");
Matcher m = p.matcher(text);
String s0 = m.group(0);
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个Match not found错误.我在这做错了什么?我的意思是,在Perl中,这完美打印出来12345:

$foo = "Kane is 12345 feet high";
$foo =~ /Kane is (\d+) feet high/;
print $1;
Run Code Online (Sandbox Code Playgroud)

java regex perl

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

FileInputStream是如何在Java中使用的

我试图理解Oreilly的Java IO中的以下代码.它应该从文件中读取并将其写入控制台:

try {
  FileInputStream fis = new FileInputStream("README.TXT"); 
  int n;     
  while ((n = fis.available()) > 0) {
    byte[] b = new byte[n];
    int result = fis.read(b);
    if (result == -1) break;
    String s = new String(b);
    System.out.print(s); 
  } // End while
} // End try
catch (IOException e) {System.err.println(e);}
System.out.println();
Run Code Online (Sandbox Code Playgroud)

我的问题是:

available方法将立即找到可用的最大长度,然后read可以调用该方法将其打印出来.这应该在一个调用中完成,为什么作者在while循环中执行它,连续检查可用性?

java io fileinputstream

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

具有整数对象参数的目标C performselector提供垃圾值

我有一个带有以下接口的Rectangle对象:

@interface Rectangle : NSObject

  @property int height, width;
  -(void) setWidth:(int)w andHeight: (int)h;

@end
Run Code Online (Sandbox Code Playgroud)

我有一个实现,并有一个对象(比如说r)。当我打电话

[r setWidth: 5 andHeight: 6];
Run Code Online (Sandbox Code Playgroud)

通过验证时,我得到正确的结果[r height]。但是,当我使用performselector相同的方法时:

NSNumber *myNumber = [NSNumber numberWithInt:45];
[r performSelector:@selector(setWidth:andHeight:) withObject:myNumber
            withObject:myNumber];
Run Code Online (Sandbox Code Playgroud)

调用会[r height]打印一些垃圾值(看起来像某个地址),预期值为45。我在做什么错?

objective-c ios performselector

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

如何在Perl和Python中模拟命令提示符

我通常使用WGET从某个网页下载一两个图像,我从命令提示符处执行以下操作:wget 'webpage-url' -P 'directory to where I wanna save it'.现在我如何在Perl和Python中自动化它?这是什么命令使我能够模拟,好像我在命令提示符下输入命令?在Python中有很多类似的模块,如subprocess,os等,我很困惑.

python perl subprocess wget command-prompt

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

这里有更好的算法吗?

我试图在Python中解决这个问题.注意到只有第一个吻需要交替,任何由于第一个吻而不是链条一部分的吻可以很好地拥抱第二个下一个人,这就是我想出的代码.这只是一个简单的数学计算,没有循环,没有迭代,没有.但我仍然得到一个超时的消息.任何优化它的方法?

import psyco
psyco.full()
testcase = int(raw_input())
for i in xrange(0,testcase):
    n = int(raw_input())
    if n%2:
        m = n/2;
        ans = 2 + 4*(2**m-1);
        ans = ans%1000000007;
        print ans
    else:
        m = n/2 - 1
        ans = 2 + 2**(n/2) + 4*(2**m-1);
        ans = ans%1000000007
        print ans
Run Code Online (Sandbox Code Playgroud)

python algorithm

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

Bentley-McIlroy 三路分区

以下是Hoare我编写的基于给定主元对数组进行分区的分区算法(在这种情况下,它是数组的第一个元素,一个相当糟糕的选择!)。然而,Bentley-McIlroy 3-way partitioninghttp://www.sorting-algorithms.com/static/QuicksortIsOptimal.pdf声称提供更好的性能,当数字键是相等的。谁能简要解释一下第 9 页上的代码实现了什么,以及为什么它比Hoare算法执行得更好?还有一个问题,分区基于<,=和放置元素>。如果多次出现的元素不是枢轴怎么办?

def hoare(arr,start,end):
     pivot = arr[start]
     i,j = start,end
     while i < j:
        while i < j and arr[i] <= pivot:
            i += 1
        while j >= i and arr[j] > pivot:
            j -= 1
        if i < j:
            arr[i],arr[j] = arr[j],arr[i]
     arr[start],arr[j] = arr[j],arr[start]
     return j
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm partitioning quicksort

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

粘贴事件未按预期工作

我正在尝试这个简单的代码。我想要的是,当paste在第二个输入文本框中触发事件时,在复制其内容、删除readonly前一个文本框的属性并将其粘贴到那里之后,应该清除该事件。然而,什么也没有发生。

paste事件被正常触发,因为如果我用简单的替换计时器中的代码alert,它就会起作用。谁能告诉我这里出了什么问题吗?

<!DOCTYPE html>
<html>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
    </script>
    <script>
       $(document).ready(function(){
         $(".boo").bind("input paste",function() { 
         elem = this;
         setTimeout(function() { 
             $(".foo").removeAttr("readonly");
             $(".foo").text($(elem).text());
             $(elem).text("");  
         },100);
        });
      });
  </script>
</head>
 <body>
   <input class = 'foo' type = 'text' /><input class = 'boo' type = 'text' />
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

jQuery live("click",function(){...})不适用于body

我在这里尝试这个简单的代码.它不适用于实际click事件或注释掉的事件.谁能解释为什么?我not以前也遇到过问题......

javascript jquery

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

从x86中的寄存​​器加载值所花费的时间

我目前正在从英特尔x86大会的Art中学习x86 .在它讨论不同指令类和操作码如何工作的部分中,它表示一个字节操作码被编码为iiirrmmm,其中三个is表示指令类,rr表示4个主寄存器,并且mmm可以是表示可选2字节存储器的许多值操作数的形式AX,[AX],[AX+XXXX],等.例如,101对应于[XXXX+BX],100对应于[BX]等,还提到在第一所采取在寄存器访问一个值的时间是零时钟周期,因为它是在芯片上实现.

但是,在解释指令完全工作所花费的时间时,为了弄清楚CPU计算内存操作数地址所花费的时间,它说:

在此输入图像描述

它不会分别是1和0周期,因为本书在开始时明确提到采用零时钟周期来访问寄存器中的值?怎么说用1个循环来获取值BX呢?

x86 assembly cpu-registers mov

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