小编Max*_*xpm的帖子

如何找到阵列的长度?

有没有办法找到一个数组有多少个值?检测我是否已到达阵列的末尾也可以.

c++ arrays

496
推荐指数
15
解决办法
130万
查看次数

如何检查C++ 11支持?

有没有办法在编译时检测编译器是否支持C++ 11的某些功能?例如,像这样:

#ifndef VARIADIC_TEMPLATES_SUPPORTED

#error "Your compiler doesn't support variadic templates.  :("

#else

template <typename... DatatypeList>
class Tuple
{
    // ...
}

#endif
Run Code Online (Sandbox Code Playgroud)

c++ c++11

99
推荐指数
10
解决办法
8万
查看次数

Python闭包:写入父作用域中的变量

我在函数中有以下代码:

stored_blocks = {}
def replace_blocks(m):
    block = m.group(0)
    block_hash = sha1(block)
    stored_blocks[block_hash] = block
    return '{{{%s}}}' % block_hash

num_converted = 0
def convert_variables(m):
    name = m.group(1)
    num_converted += 1
    return '<%%= %s %%>' % name

fixed = MATCH_DECLARE_NEW.sub('', template)
fixed = MATCH_PYTHON_BLOCK.sub(replace_blocks, fixed)
fixed = MATCH_FORMAT.sub(convert_variables, fixed)
Run Code Online (Sandbox Code Playgroud)

添加元素stored_blocks工作正常,但我不能增加num_converted第二个子功能:

UnboundLocalError:赋值前引用的局部变量'num_converted'

我可以使用,global但全局变量是丑陋的,我真的不需要该变量是全局的.

所以我很好奇如何写入父函数范围内的变量. nonlocal num_converted可能会完成这项工作,但我需要一个适用于Python 2.x的解决方案.

python closures scope python-2.x

77
推荐指数
5
解决办法
2万
查看次数

为什么"!="与迭代器而不是"<"一起使用?

我习惯写这样的循环:

for (std::size_t index = 0; index < foo.size(); index++)
{
    // Do stuff with foo[index].
}
Run Code Online (Sandbox Code Playgroud)

但是当我在其他代码中看到迭代器循环时,它们看起来像这样:

for (Foo::Iterator iterator = foo.begin(); iterator != foo.end(); iterator++)
{
    // Do stuff with *Iterator.
}
Run Code Online (Sandbox Code Playgroud)

我发现这iterator != foo.end()是有争议的.如果iterator增加多于一个也可能是危险的.

使用起来似乎更"正确" iterator < foo.end(),但我从未在实际代码中看到过这种情况.为什么不?

c++ iterator stl comparison-operators

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

在不使用单独的typedef的情况下声明函数指针数组的语法是什么?

可以像这样创建函数指针数组:

typedef void(*FunctionPointer)();
FunctionPointer functionPointers[] = {/* Stuff here */};
Run Code Online (Sandbox Code Playgroud)

在不使用typedef?的情况下创建函数指针数组的语法是什么?

c++ arrays syntax typedef function-pointers

44
推荐指数
3
解决办法
4万
查看次数

我如何证明水平列表的合理性?

我有一个水平导航栏,如下所示:

<ul id = "Navigation">
    <li><a href = "About.html">About</a></li>
    <li><a href = "Contact.html">Contact</a></li>
    <!-- ... -->
</ul>
Run Code Online (Sandbox Code Playgroud)

我使用CSS删除子弹点并使其水平.

#Navigation li
{
    list-style-type: none;
    display: inline;
}
Run Code Online (Sandbox Code Playgroud)

我试图证明文本的合理性,以便每个链接均匀分布以填满整个ul空间.我尝试添加text: justify到选择器liul选择器,但它们仍然是左对齐的.

#Navigation
{
    text-align: justify;
}

#Navigation li
{
    list-style-type: none;
    display: inline;
    text-align: justify;
}
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为如果我使用text-align: right它,它的行为与预期的一样.

如何均匀分布链接?

html css justify html-lists

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

如何缩小rand()的数字?

以下代码每秒输出一个随机数:

int main ()
{
    srand(time(NULL)); // Seeds number generator with execution time.

    while (true)
    {
        int rawRand = rand();

        std::cout << rawRand << std::endl;

        sleep(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何调整这些数字的大小,使它们总是在0-100的范围内?

c++ random generator mersenne-twister

34
推荐指数
4
解决办法
2万
查看次数

如何包含字符串标题?

我正在尝试了解strings,但不同的来源告诉我要包含不同的标题.

有人说使用<string.h>,但其他人提到"apstring.h".我能够做一些基本的东西apstring,但我被告知另一个更强大.但是当我包含<string.h>并尝试声明一些字符串变量时,我会收到错误.适当的用法是什么?

c++ string header-files

31
推荐指数
4
解决办法
21万
查看次数

*(指针+索引)和指针[]之间的区别

int* myPointer = new int[100];

// ...

int firstValue = *(myPointer + 0);
int secondValue = myPointer[1];
Run Code Online (Sandbox Code Playgroud)

有没有之间的功能差异*(myPointer + index)myPointer[index]?这被认为是更好的做法?

c++ pointers

25
推荐指数
4
解决办法
5万
查看次数

命名包括警卫

C++如何包含通常命名的守卫?我倾向于看到这么多:

#ifndef FOO_H
#define FOO_H

// ...

#endif
Run Code Online (Sandbox Code Playgroud)

但是,我认为这不是很直观.如果没有看到文件名,就很难分辨出它的含义FOO_H和名称所指的含义.

什么是最佳做法?

c++ include-guards c-preprocessor

22
推荐指数
4
解决办法
1万
查看次数