这个问题是关于C++ Boost program_options库的.
所有的教程都很清楚,我应该调用notify()我已完成的变量映射,但我不确定这对我来说实际上是做什么的.评论它似乎没有任何影响,文档没有详细说明:
http://www.boost.org/doc/libs/1_47_0/doc/html/boost/program_options/notify.html
其他消息来源表明它运行"用户定义"功能.如果是这样,这些功能如何注册,他们做了什么?他们可能会抛出异常吗?
当我正在进行切片时,发生了意想不到的事情,这似乎是第一个被查看但第二个是复制.
第一片行,然后是片段.这似乎是一种观点.
>>> a = np.arange(12).reshape(3, 4)
>>> a[0:3:2, :][:, [0, 2]] = 100
>>> a
array([[100, 1, 100, 3],
[ 4, 5, 6, 7],
[100, 9, 100, 11]])
Run Code Online (Sandbox Code Playgroud)
但是,如果我第一次切片,然后切片行,它似乎是一个副本:
>>> a[:, [0, 2]][0:3:2, :] = 0
>>> a
array([[100, 1, 100, 3],
[ 4, 5, 6, 7],
[100, 9, 100, 11]])
Run Code Online (Sandbox Code Playgroud)
我很困惑,因为这两种方法最终会导致看似位置改变,但为什么第二种方法实际上不会改变数字?