小编Ash*_*ppa的帖子

如何迭代字符串的单词?

我正在尝试迭代字符串的单词.

可以假设该字符串由用空格分隔的单词组成.

请注意,我对C字符串函数或那种字符操作/访问不感兴趣.另外,请在答案中优先考虑优雅而不是效率.

我现在最好的解决方案是:

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main()
{
    string s = "Somewhere down the road";
    istringstream iss(s);

    do
    {
        string subs;
        iss >> subs;
        cout << "Substring: " << subs << endl;
    } while (iss);
}
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

c++ string split

2895
推荐指数
43
解决办法
214万
查看次数

Python中递增和递减运算符的行为

我注意到一个预增量/减量运算符可以应用于变量(如++count).它编译,但它实际上并没有改变变量的值!

Python中预增量/减量运算符(++/ - )的行为是什么?

为什么Python偏离了C/C++中这些运算符的行为?

python increment operators decrement

756
推荐指数
8
解决办法
93万
查看次数

如何使用print()打印类的对象?

我正在学习Python中的绳索.当我尝试Foobar使用该print()函数打印类的对象时,我得到如下输出:

<__main__.Foobar instance at 0x7ff2a18c>
Run Code Online (Sandbox Code Playgroud)

有没有办法可以设置及其对象打印行为(或字符串表示)?例如,当我调用类对象时,我想以某种格式打印其数据成员.如何在Python中实现这一点?print()

如果您熟悉C++类,则可以通过为类ostream添加friend ostream& operator << (ostream&, const Foobar&)方法来实现上述标准.

python printing class object

489
推荐指数
11
解决办法
68万
查看次数

Python文件的常见头格式是什么?

关于Python编码指南的文档,我在Python源文件中遇到了以下标题格式:

#!/usr/bin/env python

"""Foobar.py: Description of what foobar does."""

__author__      = "Barack Obama"
__copyright__   = "Copyright 2009, Planet Earth"
Run Code Online (Sandbox Code Playgroud)

这是Python世界中标题的标题格式吗?我可以在标题中添加哪些其他字段/信息?Python专家分享您对优秀Python源头的指导:-)

python comments header

483
推荐指数
5
解决办法
39万
查看次数

如何获取程序运行的目录?

是否存在与平台无关且与文件系统无关的方法来获取使用C/C++运行程序的目录的完整路径?不要与当前的工作目录混淆.(请不要建议使用库,除非它们是clib或STL等标准库.)

(如果没有平台/文件系统无关的方法,也欢迎在Windows和Linux中使用特定文件系统的建议.)

c c++ working-directory

260
推荐指数
11
解决办法
48万
查看次数

指向类数据成员"::*"的指针

我遇到了这个编译好的奇怪的代码片段:

class Car
{
    public:
    int speed;
};

int main()
{
    int Car::*pSpeed = &Car::speed;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么 C++有一个指向类的非静态数据成员的指针?在实际代码中这个奇怪的指针有什么用?

c++ pointers class c++-faq

223
推荐指数
8
解决办法
15万
查看次数

Visual C++:如何禁用特定的链接器警告?

我正在使用CGAL的库,在我的代码编译的链接阶段产生了很多这种形式的链接警告:

warning LNK4099: PDB 'vc80.pdb' was not found with 'gmp-vc80-mt-sgd.lib' or at 'vc80.pdb'; linking object as if no debug info
Run Code Online (Sandbox Code Playgroud)

如何在Visual C++/Studio 2008下关闭此特定链接器警告?

请注意,我对我正在使用的外部(CGAL)库没有任何控制权.我不能/不想进入重新编译外部库.因此,需要在我的最后修复消息.

linker warnings cgal visual-studio visual-c++

118
推荐指数
4
解决办法
10万
查看次数

从文本文件中读取,直到EOF重复最后一行

以下C++代码使用ifstream对象从文本文件(每行有一个数字)读取整数,直到它达到EOF.为什么它读取最后一行的整数两次?如何解决这个问题?

码:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream iFile("input.txt");    // input.txt has integers, one per line

    while (!iFile.eof())
    {
        int x;
        iFile >> x;
        cerr << x << endl;
    }

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

input.txt:

10  
20  
30
Run Code Online (Sandbox Code Playgroud)

输出:

10  
20  
30  
30
Run Code Online (Sandbox Code Playgroud)

注意:我已跳过所有错误检查代码,以使代码段保持较小.在Windows(Visual C++),cygwin(gcc)和Linux(gcc)上可以看到上述行为.

c++ fstream iostream

117
推荐指数
5
解决办法
27万
查看次数

如何将NumPy数组规范化到一定范围内?

在对音频或图像阵列进行一些处理之后,需要在一个范围内对其进行标准化,然后才能将其写回文件.这可以这样做:

# Normalize audio channels to between -1.0 and +1.0
audio[:,0] = audio[:,0]/abs(audio[:,0]).max()
audio[:,1] = audio[:,1]/abs(audio[:,1]).max()

# Normalize image to between 0 and 255
image = image/(image.max()/255.0)
Run Code Online (Sandbox Code Playgroud)

是否有一个不那么详细,方便的功能方法来做到这一点?matplotlib.colors.Normalize()似乎没有相关性.

python arrays numpy scipy convenience-methods

116
推荐指数
7
解决办法
22万
查看次数

C++:空类对象的大小是多少?

我想知道一个空类的对象大小.它肯定不能是0字节,因为它应该可以像任何其他对象一样引用和指向它.但是,这样的对象有多大?

我用过这个小程序:

#include <iostream>
using namespace std;

class Empty {};

int main()
{
    Empty e;
    cerr << sizeof(e) << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在Visual C++和Cygwin-g ++编译器上得到的输出是1个字节!这对我来说有点令人惊讶,因为我期望它的机器字大小(32位或4字节).

任何人都可以解释为什么 1字节的大小?为什么不是 4个字节?这是依赖于编译器还是机器?此外,有人可以给出一个更有说服力的理由,说明为什么空类对象的大小不是 0字节?

c++ class object

105
推荐指数
5
解决办法
6万
查看次数