C++;Java代码,几个问题 我有一个代码,但它是C++,我不知道。 但是在我看来,C++和java之间有很多相似之处。 我唯一不知道它们是什么意思/如何用Java编写它们的是: u = getNextUglyNumber(twoQ, t

C++;Java代码,几个问题 我有一个代码,但它是C++,我不知道。 但是在我看来,C++和java之间有很多相似之处。 我唯一不知道它们是什么意思/如何用Java编写它们的是: u = getNextUglyNumber(twoQ, t,java,c++,Java,C++,C++;Java代码,几个问题 我有一个代码,但它是C++,我不知道。 但是在我看来,C++和java之间有很多相似之处。 我唯一不知道它们是什么意思/如何用Java编写它们的是: u = getNextUglyNumber(twoQ, threeQ, fiveQ, &q); //and what is &q, the &? twoQ.push(u << 1); //what is << ? std::cout <<

C++;Java代码,几个问题 我有一个代码,但它是C++,我不知道。
但是在我看来,C++和java之间有很多相似之处。 我唯一不知道它们是什么意思/如何用Java编写它们的是:

u = getNextUglyNumber(twoQ, threeQ, fiveQ, &q); //and what is &q, the &?

twoQ.push(u << 1); //what is << ?

std::cout << u << ' '; //this i dont understand at all

*q = 2; // same as q = 2*q?

if (fiveQ.front() < u) {
        u = fiveQ.front(); //whats front?
u=getNextUglyNumber(twoQ、threeQ、fiveQ和&q)//什么是&q,这个&?

推(Up>第一>代码>:C++与java有很多相似之处不要被一些东西误导,因为它们可能看起来很相似。事实上它们是非常不同的。但是我认为C++和java之间有很多相似之处。C++的程序看起来非常怪异,到处都是bug,效率低,内存泄漏等等。我建议C++教程。(您可以专门查找您不知道/不理解的内容)。您有一个教程页面和

typedef std::queue<int> Queue;
int findNthUglyNumber(int n) {
    Queue twoQ, threeQ, fiveQ;
    twoQ.push(2);
    threeQ.push(3);
    fiveQ.push(5);
    int u, q;
    while (n) {
        u = getNextUglyNumber(twoQ, threeQ, fiveQ, &q);
        switch (q) {
        case 2:
            twoQ.push(u << 1);           /// u * 2
        case 3:
            threeQ.push(u << 2 - u);     /// u * 3
        case 5:
            fiveQ.push(u << 2 + u);      /// u * 5
        }
        n--;
        std::cout << u << ' ';
    }
    return u;
}

int getNextUglyNumber(Queue &twoQ, Queue &threeQ, Queue &fiveQ, int &q) {
    int u = twoQ.front();
    *q = 2;
    if (threeQ.front() < u) {
        u = threeQ.front();
        *q = 3;
    }
    if (fiveQ.front() < u) {
        u = fiveQ.front();
        *q = 5;
    }
    switch (*q) {
    case 2:
        twoQ.pop();
        break;
    case 3:
        threeQ.pop();
        break;
    case 5:
        fiveQ.pop();
        break;
    }
    return u;
}
System.out.print(u);
System.out.print(' ');
Queue<Integer> fiveQ = new LinkedList<>();
fiveQ.add(5); // fiveQ.push(5); in C++
fiveQ.peek(); // fiveQ.front(); in C++
fiveQ.remove(); // fiveQ.pop(); in C++
public class MutableInt {
    private int value = 0;

    public int get() {
        return value;
    }

    public void set(int value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return String.valueOf(value);
    }
}