问题:考虑以下浮点数[]:
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
我正在寻找 GObject 备忘单,了解常见的 OOP 概念如何映射到 GObject 的设施。例如考虑:
AnyGObject *o;
o = anygobject_new();
Run Code Online (Sandbox Code Playgroud)
现在,约定是什么...
说明:GObject 参考手册和GObject HowTo详细解释了如何创建新类(类结构、对象结构、私有结构、各种宏、约定)。将这些设施结合在一起就可以实现 OOP。然而似乎没有关于如何一致使用它们的教程。
我在这里使用一个解析器生成器,不幸的是坚持放一个
#include <some/file.h>
Run Code Online (Sandbox Code Playgroud)
在每个生成的源文件的顶部.该标题早已重命名.虽然强制编译器(gcc)使用新标头没有问题-include new/header.h
,但是从每个生成的文件中删除上述指令会使构建过程复杂化.
有没有办法告诉gcc简单地忽略some/file.h
?