小编use*_*232的帖子

在Big O表示法中,您如何考虑对其他方法的调用?

假设我们有这两种方法:

void example(int p){
    p += 10;
    p = exampleTwo(p);
}

int exampleTwo(int p){
    int pp = 0;
    for(int i = 0; i < p; i++){
        pp++;
    }
    return pp;
}
Run Code Online (Sandbox Code Playgroud)

该方法exampleTwo具有线性运行时.它的运行时间是O(n).

那么,example考虑到它调用的方法,该方法的大O符号是什么exampleTwo

我想它也是O(n),但我不确定.

c++ big-o

3
推荐指数
2
解决办法
958
查看次数

如何摆脱java中的对象实例?

我需要在java中删除一个类的实例,这样我就可以创建一个新实例.在我继续之前必须销毁先前的实例.我意识到Java没有提供隐式删除,并且我一直在尝试使用弱引用的技巧强制垃圾收集来摆脱它.

这是我的代码:

private static void gc() {
    Object obj = new Object();
    WeakReference ref = new WeakReference<Object>(obj);
    obj = null;
    while(ref.get() != null) {
        System.gc();
    }
}

private void setTrack(String path){
    MediaHub current;
    if(!isPlaying){
        current = new MediaHub(title,album,titles,titlePlace,play,next,previous,volume,progress,songTitle,thisInstance,getBaseContext(),path);
    } else {
        current = null;
        gc();
        isPlaying = false;
        setTrack(path);
    }
}
Run Code Online (Sandbox Code Playgroud)

MediaHub是我试图删除一个实例并创建一个新实例的对象.isPlaying是一个布尔实例变量,在类的顶部定义为false.据推测,该方法gc()应该强制进行垃圾收集.

到目前为止,我没有成功(希望显而易见的原因).那么,我该如何删除一个实例MediaHub呢?

编辑:我需要删除的原因是因为在MediaHub中使用了一个Android MediaPlayer,当我需要切换歌曲时,我最终会互相播放两首歌曲.我对代码很深入,我不想重写大量的代码.所以我真的希望在这里得到答案......

java android garbage-collection

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

c ++:结构中的int值正在改变值,没有明显的原因

我在学习java之后想学习c ++.我被告知结构很像java中带有实例变量的类.分数结构中的"整数"值似乎在isDivisible函数中从1随机变为零.为什么会这样?请不要遗漏细节.谢谢您的帮助

#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;

#define LARGEST(a,b) ((a > b) ? 1 : 0)

struct fraction {
    int numerator;
    int denominator;
    int whole;
};

fraction* wholeNumber(fraction * frac){
    if (LARGEST((frac->numerator), (frac->denominator)) == 1){
        double w = (((double) (frac->numerator)) / ((double) (frac->denominator)));
        int whole = floor(w);
        struct fraction now = { (frac->numerator) - whole*(frac->denominator),
                (frac->denominator), whole};
        return &now;
    }

    return frac;
}

int toCheck[4] = {2,3,5,7}; 

int isDivisible(fraction * frac){
    double newNum = (double) frac->numerator; …
Run Code Online (Sandbox Code Playgroud)

c c++ struct

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

为什么这个模板示例代码没有编译?

我想尝试使用模板来学习如何使用它们.我在Visual Studio 2010 C++中创建了一个包含三个文件的项目:

Controller.cpp:

#include <iostream>

#include "Foo.h"

using namespace std;

int main(){

    Example<int,string> example;

    example.appols(5, "Hi");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

foo.h中:

#include <iostream> 

using namespace std;

template <class T, class E>
class Foo{
public:
    void printThis(T t, E e);
};

template <class T, class E>
class Example{
public:
    void appols(T t, E e);
};
Run Code Online (Sandbox Code Playgroud)

Foo.ipp:

#include <iostream>

#include "Foo.h"

using namespace std;

template<class T, class E>
void Foo<T, E>::printThis(T t, E e){
    cout << "FOO! " << t << …
Run Code Online (Sandbox Code Playgroud)

c++ templates lnk2019

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

标签 统计

c++ ×3

android ×1

big-o ×1

c ×1

garbage-collection ×1

java ×1

lnk2019 ×1

struct ×1

templates ×1