小编huo*_*uon的帖子

在python中列出作为引用类型

以下是我编写的用于计算第n个素数的代码.我初始化arr = [2,3,5]; 和prime(arr,n)应该修改arr以包含前n个素数.但arr并不反映prime(arr,n)执行后的变化.我读到列表作为引用类型传递,所以下面的代码中的问题是什么.t表示必须进行验证的测试用例的数量.

该程序导致错误,表明数组索引超出了arr的范围.

import sys;
def prime (arr,n):
    while(len(arr)< n):
        num=arr[len(arr)-1]+1;prime=0;
        while(prime==0):
            prime = 1
            for val in arr:
                if(num%val==0):
                    prime=0;
                    break;
            if(prime == 1):
                print "hello";
                arr = arr + [num];print arr; print "--";
            else:
                num = num+1;


t=raw_input();
t=int(t);
arr=[2,3,5];
ans =[];
for v in range (0,t):
    n = raw_input();
    n = int(n);
    if(n<=len(arr)):
        ans = ans + [arr[n-1]];
    else:
        prime(arr,n);print arr;print"arr was printed"
        ans= ans + [arr[n-1]];
print ans;print 'ans ';
Run Code Online (Sandbox Code Playgroud)

以下是上述代码的示例运行

>>> 
1
4 …
Run Code Online (Sandbox Code Playgroud)

python primes

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

新手:了解主要和IO()

在学习Haskell时,我想知道什么时候会执行IO操作.在几个地方我找到了这样的描述:

"I/O操作的特殊之处在于,如果它们属于主要功能,则执行它们."

但是在下面的示例中,'greet'永远不会返回,因此不应打印任何内容.

import Control.Monad

main = greet

greet = forever $ putStrLn "Hello World!"
Run Code Online (Sandbox Code Playgroud)

或许我应该问:"落入主要功能"是什么意思?

haskell

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

堆栈是否应具有最大大小?

我正在通过实现一些数据结构来练习我对ADT的了解,即使大多数已经存在.使用Stacks,我读过很多书和其他文档,当你尝试添加一个元素但堆栈已满时,会讨论堆栈抛出错误.在java实现(或任何其他)中,我应该专门跟踪最大堆栈大小(来自构造函数),检查是否达到该大小,如果是,则抛出溢出异常?或者不是很重要?

java implementation stack

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

这个小的for循环中的内存泄漏和valgrind错误?

我在使用valgrind中产生错误的这一小部分代码时遇到了麻烦.当我评论代码并运行valgrind时,我没有得到任何内存泄漏或错误,所以这个循环应该是原因:

///Print the top users
    const char* str;
    for (int i = 0; i < count; i++) {
        if (FinalArray[i].Score == -1) {
            break;
        }

        int id = UserGetID(user);
        char* name = UserGetName(user);
        int finalID = UserGetID(FinalArray[i].user);
        char* finalName = UserGetName(FinalArray[i].user);

        assert(finalName!= NULL && name !=NULL);
        str = mtmSuggestFriends(id, name, finalID, finalName);

        if (str == NULL) {
            return MAIN_ALLOCATION_FAILED;
        }

//      fprintf(fileOutput, str);
    }
Run Code Online (Sandbox Code Playgroud)

在这个循环之后,我只返回一个枚举说明成功.

以下是Valgrind中的错误:

==8779== Use of uninitialised value of size 8
==8779==    at 0x4037C2: UserGetName (in /u1/023/mtm/ex2/RUN/mtm_isocial) …
Run Code Online (Sandbox Code Playgroud)

c valgrind memory-leaks

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

为什么共享偏好的getStringSet方法不起作用?

在我的Android应用程序中,我正在使用这行代码:

SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
Set<String> set = myPrefs.getStringSet("list", new HashSet<String>());
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误:

对于SharedPreferences类型,方法getStringSet(String,HashSet)未定义

为什么我会收到此错误?提前致谢.

android sharedpreferences

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