小编Rud*_*uis的帖子

可以在排序中制作"caseInsensitiveCompare"等自定义比较器吗?

我试图对一些数据进行排序以sortedArrayUsingDescriptors:NSArray类中使用方法.

该方法必须指示标准比较器,但我想指出自定义比较器我做了什么.

有可能吗?

这是我的排序代码的一部分:

NSSortDescriptor *firstDescriptor =
[[[NSSortDescriptor alloc]
  initWithKey:FIRSTNAME
  ascending:YES
  selector:@selector(CustomCompare:)] autorelease];
Run Code Online (Sandbox Code Playgroud)

CustomCompare: <=想要制作自定义比较器.

objective-c

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

将货币值设置为NAN,INF或-INF?

我想测试一些代码,以确保它处理NAN,INF-INF输入正确.

我知道存在返回的功能 NAN,INF-INF,但是作为Double:

unit IEEE754;
...
function NAN: Double;
function PositiveInfinity:  Double;
function NegativeInfinity:  Double;
Run Code Online (Sandbox Code Playgroud)

除了在我的情况下,我需要测试a何时Currency是这三个边缘情况值之一.不幸的是,你无法将这些中的任何一个转换为Double:

Test(NAN);

procedure Test(const Value: Currency);
  ...
Run Code Online (Sandbox Code Playgroud)

将a转换为a 时,存在EInvalidOp 无效的浮点运算异常.Double NANCurrency

是否可以指定NAN一个Currency

也许,而不是它是可以指定一个NANCurrency,它是不是没有可能的-我可以忽略这种边缘情况.

我可以忽略这个边缘情况吗?

是否可以"将货币值设置为NAN,INF或-INF?"


{   David Heffernan says it's impossible for a currency to contain INF,-INF or …
Run Code Online (Sandbox Code Playgroud)

delphi nan delphi-5 infinity

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

C错误我之前没遇到过

shell_command(char gcommand[100]) {
    FILE *pipe = popen("ls", "r");
    char output[100];

    if ( pipe ) {
        fgets(output, sizeof output, pipe);
        pclose(pipe);
    }
    return output;
}
Run Code Online (Sandbox Code Playgroud)

结果是

program.c:在函数'shell_command'中:
program.c:42:warning:return从指针生成整数而没有
强制转换program.c:42:warning:function返回局部变量的地址

我两天都用Google搜索,但没有成功

c variables pointers integer

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

为矢量矢量分配内存

我正在尝试为向量向量保留空间,但它不起作用并抛出以下错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Run Code Online (Sandbox Code Playgroud)

每次我使用足够大的数字.我所拥有的最小版本如下:

#include <vector>
#include <iostream>
using namespace std;


int main(){

  int base;
  cout << "Enter Base: ";
  cin >> base;

  int dimension;
  cout << "Enter Dimension: ";
  cin >> dimension;

  int perms = 1;
  for(int i=0; i<dimension; i++){
    perms *= base;
  } // This gets the number of permutations with repetition

  int length;
  cout << "Enter Length: ";
  cin >> length;

  float structSize = 1.0;

  for(float i=0.0; i<length; i++){ …
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

Java BigDecimal from String 没有小数位但假设最后两位数字为十进制

A have a String: "1234567" 我想将此字符串传输到具有以下格式的 BigDecimal: 12345.67 --> 最后两个数字应被视为小数位。

有什么方法可以解决这个问题,或者我是否必须使用资源消耗方式,例如:

String numberUnformated = 1234567;
BigDecimal number = new BigDecimal(amount.substring(0,amount.length()-2)+"."+amount.substring(amount.length()-2))
Run Code Online (Sandbox Code Playgroud)

谢谢

java string type-conversion bigdecimal

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

如何用鼠标调整cxgrid的大小?

我将4个cxgrid放入cxTabSheet,3个对齐的albottom和1个对齐的alClient ...当鼠标位于任何cxgrid的边缘时,光标鼠标不会更改为crSize(NS,WE,NESW,NWSE)而不能选择网格边框以拖动鼠标并调整其大小.我怎样才能做到这一点?

delphi size devexpress tcxgrid

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

在Java中将字符串UUID转换为BigInteger

我正在尝试将以字符串形式出现的UUID转换为Big Integer,但每次都失败,并带有Number Format异常,因为它需要String Decimal作为参数。有什么方法可以实现这一目标。

String x = "6CFAFD0DA976088FE05400144FFB4B37";
Run Code Online (Sandbox Code Playgroud)

我也尝试了基数,但输出是不同的。

BigInteger big = new BigInteger(x, 0);

System.out.println(big);
Run Code Online (Sandbox Code Playgroud)

感谢您的协助,TIA。

java uuid biginteger

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

为什么 Java BigInteger 说“可能是素数”而不是“肯定是素数”?

BigInteger的JavaDoc让我觉得很不安全,例如下面的构造函数说:

BigInteger(int bitLength, int certainty, Random rnd)
Run Code Online (Sandbox Code Playgroud)

构造一个随机生成的正 BigInteger,它可能是质数,具有指定的 bitLength。

为什么只有大概?为什么不肯定?我还能相信结果是质数吗?

java biginteger

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

从C#调用Delphi DLL并传递位图和字节数组

我试图用C#调用几个Delphi函数:

  MyType =array [1 .. 124] of byte
  procedure f(bytes: MyType); stdcall;
  external 'my.dll' name 'f';
Run Code Online (Sandbox Code Playgroud)

那是我的第一个问题.我试过了:

    [DllImport("Delphi/my.dll",
        CallingConvention = CallingConvention.StdCall,
        CharSet = CharSet.Auto)]
    public static extern
    void sygLadSyg([MarshalAs(UnmanagedType.LPArray)] byte[] myArray);
    void sygLadSyg([MarshalAs(UnmanagedType.SafeArray)] byte[] myArray); 
Run Code Online (Sandbox Code Playgroud)

我得到例外:

对PInvoke函数的调用使堆栈失衡.这很可能是因为托管PInvoke签名与非托管目标签名不匹配.检查PInvoke签名的调用约定和参数是否与目标非托管签名匹配.

我究竟做错了什么?

第二个问题是传递位图.

function sygAnaliz(bitmapa: TBitmap): byte; stdcall;
  external 'awSygnat1.dll' name 'sygAnaliz';
 [DllImport("Delphi/awSygnat1.dll",
            CallingConvention = CallingConvention.StdCall,
            CharSet = CharSet.Ansi)]
        public static extern
        byte sygAnaliz(IntPtr bitmapPtr);
// and call itself
sygAnaliz(firstIMG.GetHbitmap());
Run Code Online (Sandbox Code Playgroud)

我得到异常:尝试读取或写入受保护的内存.这通常表明其他内存已损坏.

这两种功能都是内存安全的,因为它们已经使用了几年而效果很好.也许有一些我想念的东西?

c# delphi interop bitmap marshalling

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

Java逻辑测试问题花式编号

1.花哨的数字是序列1,1,5,17,61中的数字,...... 

请注意,前两个花哨的数字是1,除了前两个之外的任何花哨的数字都是前一个的两倍和前一个的两倍之和.见下文: 

1,1,

3*1 + 2*1 = 5

3*5 + 2*1 = 17

3*17 + 2*5 = 61

编写一个名为isFancy的函数,如果其整数参数是一个Fancy数,则返回1,否则返回0.该函数的签名是int isFancy(int n)

解决方案:

public class fancynumber {
public static void main(String[] args) {
    System.out.println(isFancy(5));
     System.out.println(isFancy(17));
      System.out.println(isFancy(61));
}

private static int isFancy(int i) {
    int previous = 1;
    int pprevious = 1;
    int set = 0;
    int currentvalue = 0;
    for(int a = 0; a<i;a++){

       currentvalue = 3*previous + 2*pprevious;

        if(currentvalue==i){
            set = 1;
            break;
        }
        else{
            set = 0;
        previous = …
Run Code Online (Sandbox Code Playgroud)

java arrays

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