小编Syt*_*the的帖子

高效的收藏品使用

我正在做一个小项目,并想知道什么可能是最好(最有效)的方式来订购一堆Stringsby:

  1. 他们的长度
  2. 按字母顺序

前者是最初排序的方式.

我在考虑使用优先级队列,但我不确定是否有更有效的方法来排序Strings.

另外,我很难弄清楚如何按长度排序后按字母顺序排序.如果有人有更好的方法对这些进行排序或者知道如何在第一次排序之后进行排序,那么答案就会很好.

java sorting priority-queue string-comparison comparator

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

案例表达式必须是常量表达式

在处理语言中有一些问题,它说case表达式必须是常量,但我可以发誓它们是.我不知道我在这里做错了什么.有人有提示吗?

int gameState;
static int MENU = 0;
static int GAME = 1;
static int OPTIONS = 2;

void setup() {
  screenSizex = 960;
  screenSizey = 640;
  size(screenSizex, screenSizey);
  gameState = MENU;
}

void draw(){
  switch(gameState) {
    case MENU:
      //does menu stuff
      break;
    case OPTIONS:
      //does options stuff
      break;
    case GAME:
      //does game stuff
      break;
    default:
      break;
  }
}

void mousePressed() {
  if (//over some object) {
    gameState = GAME;
  }
  else if (//over some object) {
    gameState = OPTIONS; …
Run Code Online (Sandbox Code Playgroud)

java processing case switch-statement

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

为什么char数组4的两个元素的内存地址不同?

当我发现两个数组元素彼此相邻并找到差异时,我正在C中试图找到解释内存地址差异的方法.这是我的代码:

#include <stdio.h>

int main(){
  char *a[5];
  printf("%p\n", (&a[0]));
  printf("%p\n", (&a[1]));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

示例输出:

0xbf9343dc
0xbf9343e0
Run Code Online (Sandbox Code Playgroud)

这样做时,输出不应该是表单的内容:

0x0....0
0x0....1
Run Code Online (Sandbox Code Playgroud)

因为char指针的大小应该是1(在我使用的32位系统上).

如果有人知道为什么会这样,并且可以提供解释,那将非常有帮助

c memory arrays

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