小编Tho*_*hor的帖子

变量i减去1的目的是什么?是 - 1对于公平随机化真的是必要的吗?

我在Oracle文档中看到了这段代码.

该文件指出:"下面的洗牌方法,不像大多数天真的洗牌尝试,这是公平的(假设无偏见的随机性来源,所有排列都有相同的可能性发生)".

我的问题是交换方法中变量i减1的目的是什么?是 - 1对于公平随机化真的是必要的吗?

public static void shuffle(List<?> list, Random rnd) {
    for (int i = list.size(); i > 1; i--)
        swap(list, i - 1, rnd.nextInt(i));
}
Run Code Online (Sandbox Code Playgroud)

java random algorithm collections

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

内部for循环的目的是什么'for(auto&str:vec)'?

我是C++的新手,正在尝试学习矢量的概念.我在网上看到了这段代码.我的问题是,'for(auto&str:vec)'内部for循环的目的是什么?为什么作者为第一个引用(&str)创建了第二个引用(&c)?

int main() {
    vector<string> vec;
    for (string word; cin >> word; vec.push_back(word)) {
    }
    for (auto &str : vec) {
        for (auto &c : str) {
            c = toupper(c);
        }
    }
    for (int i = 0; i != vec.size(); ++i) {
        if (i != 0 && i % 8 == 0) cout << endl;
        cout << vec[i] << " ";
    }
    cout << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ for-loop vector

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

为什么不允许子类重写方法可以导致创建不可变对象?

我是Java新手,正在尝试学习定义不可变对象的概念.我已经在Java教程oracle中读到了创建不可变对象的方法之一

不允许子类重写方法.最简单的方法是将类声明为final.

我的问题是,为什么不允许子类重写方法会导致创建不可变对象?我在努力理解这里的联系.

java overriding final subclass immutability

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

Java中元素编号应该从0开始还是1开始?

我正在尝试学习Java中索引和元素的概念。我见过两种版本的元素表示形式,但不确定哪一种是正确的。

对于具有 4 个元素的数组,第一个版本分配Element(0)给第一个元素,分配Element(1)给第二个元素,依此类推。该版本如下图所示。

在此输入图像描述

第二个版本Element(1)分配给第一个元素,Element(2)分配给第二个元素,依此类推。

我很困惑哪个版本的表示元素是正确的,哪个版本是错误的,这给我带来了很多困惑。

java arrays indexing element

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

如何比较Java中的int数组?

当我尝试比较两个 int 数组时,即使它们完全相同,里面的代码if (one == two)仍然没有被执行。为什么是这样?

Object[] one = {1,2,3,4,5,6,7,8,9};
Object[] two = {1,2,3,4,5,6,7,8,9};

if (one == two){
    System.out.println("equal");
} else {
    System.out.println("not equal");
}
Run Code Online (Sandbox Code Playgroud)

java arrays

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

为什么Java不允许在构造函数中初始化静态最终变量(例如static final int d)?

我正在尝试在Java中初始化不同类型的变量.我可以在构造函数中初始化final变量(例如final int b)和静态变量(例如static int c)但我不能在构造函数中初始化静态final变量(例如static final int d).IDE还会显示错误消息.

为什么Java不允许在构造函数中初始化静态最终变量?

public class InitialisingFields {
    int a;
    final int b;
    static int c;
    static final int d;

    InitialisingFields(){
        a = 1;
        b = 2;
        c = 3;
        d = 4;
    }

    public static void main(String[] args) {
        InitialisingFields i = new InitialisingFields(); 
    }

}
Run Code Online (Sandbox Code Playgroud)

错误信息:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - cannot assign a value to final variable d
    at JTO.InitialisingFields.<init>(InitialisingFields.java:22)
    at JTO.InitialisingFields.main(InitialisingFields.java:26)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)

java variables static final initialization

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

imageView中的图像在Swift Xcode故事板上变成了问号

我正在按照Stanford关于iOS开发的讲座来学习Swift。我目前正在将一个imageView添加到情节提要。我已将图像添加到imageView。但是,我不确定自己做了什么,但是图像突然变成了这样:

在此处输入图片说明

不是在寻求针对该问题的具体解决方案。我只想大体上知道添加的图像可能变成问号的一些原因。

storyboard imageview ios swift

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

对于 onclick,何时使用 `onclick="confirmOnSubmit()` 与 `onclick="confirmOnSubmit`

我对 HTML 和 JavaScript 很陌生。我已经看到onclick被分配到带有以下括号的onclick="confirmOnSubmit()函数和不带括号的函数onclick="confirmOnSubmit

我只是想知道这两者之间有什么区别?我什么时候应该使用一个?

<input type="submit" value="Submit" id="submitID" onclick="confirmOnSubmit()"/>
Run Code Online (Sandbox Code Playgroud)

html javascript

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

如何查看已初始化数组与未初始化数组占用的内存

我目前正在按照 Kip Irvine 的“x86 处理器的汇编语言”学习汇编编程。在第 3.4.12 节中,作者指出:

.DATA?指令声明未初始化的数据。当定义大量未初始化数据时,该.DATA?指令会减少编译程序的大小。例如,以下代码被高效地声明:

.data
smallArray DWORD 10 DUP(0) ; 40 bytes
.data?
bigArray DWORD 5000 DUP(?) ; 20,000 bytes, not initialized
Run Code Online (Sandbox Code Playgroud)

另一方面,以下代码生成的编译程序大 20,000 字节:

.data
smallArray DWORD 10 DUP(0) ; 40 bytes
bigArray DWORD 5000 DUP(?) ; 20,000 bytes
Run Code Online (Sandbox Code Playgroud)

我想在程序编译后查看每个版本代码的内存占用情况,这样我就可以亲自看到效果.data?,但我不确定如何做到。

arrays x86 assembly masm irvine32

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

为什么jquery position()方法没有setter版本

我正在研究jquery,并注意到jquery中的大多数方法都有一个设置和getter版本.即该方法用作setter或getter,具体取决于传递给方法的参数的类型/数量.

一个例子是jquery offset()方法.

但我也注意到jquery position()方法只有一个getter版本,并且缺少setter版本.

有谁知道为什么该position()方法没有setter版本?我不完全确定,但我认为setter版本在某些情况下会很有用.

javascript jquery

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