小编KT1*_*100的帖子

迭代C++ STL地图数据结构:新技术?(迭代范围和'auto'关键字)

到目前为止,我总是使用迭代器遍历STL映射中的所有键,如下所示:

    for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it){
            std::cout << it->first << "  => " << it->second << '\n';
    }
Run Code Online (Sandbox Code Playgroud)

最近虽然我遇到了一些使用不同样式来迭代键的代码,如下所示.此功能是否仅在最近修订后的标准中添加?与许多其他语言已经提供的一样,这似乎是一种使用较少代码完成更多工作的相当有趣的方式.

    for (auto& x: mymap) {
            std::cout << x.first << " => " << x.second << '\n';
    }  
Run Code Online (Sandbox Code Playgroud)

此外,我很想知道在这里使用关键字"auto"的确切含义.

c++ stl map c++11

28
推荐指数
4
解决办法
7万
查看次数

如何在Python中制作列表的浅表副本

我试图在Python中实现一个算法来生成列表的所有排列.但我在我的for循环中我希望保持原始前缀和休息列表完整,因此我试图使用newprefix和newrest创建这些列表的副本,但是在每次迭代打印变量rest时,我看到即使是变量休息正在修改!如何在Python中创建列表的浅表副本?或者我的逻辑是否存在另一个问题?

def perm(prefix, rest):
    if len(rest) == 0:
        print prefix 
    for i in range(len(rest)):
        #prints in the for loop are just for debugging
        print "rest:", rest
        print "i=", i
        newprefix = prefix
        newprefix.append(rest[i])
        newrest = rest
        newrest.pop(i)
        print "old pre : ", prefix
        print "newpre=", newprefix
        print "newrest=", newrest
        perm(newprefix, newrest)


perm([], ['a','b','c'])
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

使用ec2开发人员工具导入vmdk文件时出错

虽然ec2-import-instance工具支持vmdk磁盘格式,但每次我尝试在vmdk文件上运行该命令时,都会收到以下错误:

    ERROR: File uses unsupported compression algorithm 0
Run Code Online (Sandbox Code Playgroud)

我按以下格式调用该工具:

    ec2-import-instance -f vmdk -o <ACCESS KEY> -w <SECRET KEY> <VMDK file>
Run Code Online (Sandbox Code Playgroud)

我正在使用ec2工具版本1.6.6.1.

amazon-ec2 ec2-api-tools

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

在python中,定义具有函数的模块或具有包含函数的类的模块是否更好?

在我的代码中,上述两个选项中的任何一个都可以同样有效,但我有兴趣找出两种方法的优缺点.

python

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

访问python中子进程的标准输出

如何在将子进程发送到主进程之前访问它们的stdout?我正在使用multiprocessing.Pool模块来生成子进程池.

python multiprocessing

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

从python中的函数返回错误字符串

我在Python中有一个类函数,它返回成功或失败,但如果发生故障,我希望它返回一个特定的错误字符串.我有三种方法:

  1. 将变量error_msg传递给最初设置为None的函数,如果出现错误,则将其设置为错误字符串.例如:

    if !(foo(self, input, error_msg)):
        print "no error"
    else:
        print error_msg
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从函数返回包含bool和error_msg的元组.

  3. 我在出现错误时引发异常并在调用代码中捕获它.但是由于我没有看到我正在使用的代码库中经常使用异常,所以不太确定采用这种方法.

Pythonic的做法是什么?

python python-2.7 python-3.x

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

用Python从电子邮件中提取域名(包括几个特例)

我试图使用Python从电子邮件字符串中提取域名.对于诸如abc@xyz.com之类的基本情况,以下情况很有效:

string.split("@")[1].rstrip(".com")   #would give me "xyz"
Run Code Online (Sandbox Code Playgroud)

但我希望找到一个解决方案来获取以下案例的域名:

  • abc@alumni.xyz.com
  • abc@xyz.org
  • abc@xyz.co.in
  • abc@xyz.it

我想到的一个解决方案是使用正则表达式并删除最后一个点后面的任何内容,但仍留下特殊域名,例如"xyz.co.sy",其中我希望得到的只是"xyz".

python regex python-3.x

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

在一个变量中求解线性方程

在作为函数的字符串输入给出的一个变量中求解线性方程的最有效算法是什么?例如,对于输入字符串:

"x + 9 - 2 - 4 + x = - x + 5 - 1 + 3 - x"

输出应为1.

当我在字符串中遇到空格时,我正在考虑使用堆栈并将每个字符串标记推到它上面.如果输入是波兰表示法,那么从堆栈中弹出数字以获得结果会更容易,但我不确定采取何种方法.

这是一个面试问题.

c++ python algorithm linear-algebra

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