小编edg*_*eis的帖子

Java数组排序:快速获取数组索引的排序列表

问题:考虑以下浮点数[]:

d[i] =     1.7 -0.3  2.1  0.5
Run Code Online (Sandbox Code Playgroud)

我想要的是一个int []数组,它表示带索引的原始数组的顺序.

s[i] =       1    3    0    2
d[s[i]] = -0.3  0.5  1.7  2.1
Run Code Online (Sandbox Code Playgroud)

当然,可以使用自定义比较器,自定义对象的排序集,或者通过简单地对数组进行排序,然后搜索原始数组中的索引(颤抖)来完成.

我实际上正在寻找的是Matlab的sort函数的第二个返回参数的等价物.

有没有一种简单的方法(<5 LOC)?可能有一个解决方案,不需要为每个元素分配一个新对象?


更新:

谢谢你的回复.不幸的是,迄今为止提出的所有内容都不像我希望的简单而有效的解决方案.因此,我在JDK反馈论坛中打开了一个帖子,建议添加一个新的类库函数来解决这个问题.让我们看看Sun/Oracle对此问题的看法.

http://forums.java.net/jive/thread.jspa?threadID=62657&tstart=0

java arrays sorting class-library

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

GObject OOP 语法

我正在寻找 GObject 备忘单,了解常见的 OOP 概念如何映射到 GObject 的设施。例如考虑:

AnyGObject *o;
o = anygobject_new();
Run Code Online (Sandbox Code Playgroud)

现在,约定是什么...

  • 调用一个方法
  • 调用基类声明的方法
  • 调用该类正在实现的接口声明的方法
  • 调用类方法
  • 调用基类声明的类方法
  • 调用虚方法
  • 转换为基类
  • 转换为派生类
  • 转换为类正在实现的接口
  • 测试对象是否属于特定类型
  • ...

说明:GObject 参考手册GObject HowTo详细解释了如何创建新类(类结构、对象结构、私有结构、各种宏、约定)。将这些设施结合在一起就可以实现 OOP。然而似乎没有关于如何一致使用它们的教程。

c gtk oop gobject

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

使C预处理器忽略某些#include指令

我在这里使用一个解析器生成器,不幸的是坚持放一个

#include <some/file.h>
Run Code Online (Sandbox Code Playgroud)

在每个生成的源文件的顶部.该标题早已重命名.虽然强制编译器(gcc)使用新标头没有问题-include new/header.h,但是从每个生成的文件中删除上述指令会使构建过程复杂化.

有没有办法告诉gcc简单地忽略some/file.h

c gcc build-process include c-preprocessor

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

标签 统计

c ×2

arrays ×1

build-process ×1

c-preprocessor ×1

class-library ×1

gcc ×1

gobject ×1

gtk ×1

include ×1

java ×1

oop ×1

sorting ×1