小编D G*_*D G的帖子

在移动 unique_ptr 后,指向 unique_ptr 内容的指针的内容是否有效?

我已经明白对移动的内容调用成员函数std::unique_ptr是未定义的行为。我的问题是:如果我调用.get()一个unique_ptr然后移动它,原来的.get()指针会继续指向原来的唯一指针的内容吗?

换句话说,

std::unique_ptr<A> a = ...
A* a_ptr = a.get();
std::unique_ptr<A> a2 = std::move(a);
// Does *a_ptr == *a2?
Run Code Online (Sandbox Code Playgroud)

我认为确实如此,但我想确定一下。

(“内容”可能是错误的词。我的意思是当您取消引用指针时获得的数据)

c++ pointers unique-ptr move-semantics

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

设置为 numpy 数组切片时如何禁用大小更改广播?

NoBroadcastArray成为 的子类np.ndarray。如果x是 的一个实例NoBroadcastArray并且arr是一个np.ndarray,那么我想要

x[slice] = arr
Run Code Online (Sandbox Code Playgroud)

当且仅当与arr.size切片大小匹配时才能成功。

x[1] = 1  # should succeed
x[1:2] = 1  # should fail - scalar doesn't have size 2
x[1:2] = [1,2]  # should succeed
x[1:2] = np.array([[1,2]])  # should succeed - shapes don't match but sizes do.
x[1:2, 3:4] = np.array([1,2])  # should fail - 1x2 array doesn't have same size as 2x2 array
Run Code Online (Sandbox Code Playgroud)

换句话说,只有当 RHS 不必更改大小以适合 LHS 切片时,分配才会成功。我不介意它是否改变形状,例如,如果它从形状为 …

python arrays numpy numpy-ndarray

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

C中的指针和typedef

在C中,

int* a, b;
Run Code Online (Sandbox Code Playgroud)

将使a整数指针和b成为整数.

那这个呢?是b整数还是整数指针?

typedef int* foo;
foo a, b;
Run Code Online (Sandbox Code Playgroud)

c pointers typedef

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

Python的sort()/ sorted()函数是否调用其可选的'key'参数O(n)次或O(n log n)次?

假设apples是一个n个苹果的列表,我有一个apple_evaluator(apple)评估苹果'良好'的功能.apples按"善" 排序我用apples.sort(key = apple_evaluator)sorted(apples, key=apple_evaluator).

apple_evaluator得到所谓O(n)的时间(如Python的预先计算apple_evaluator(apple) 每个appleapples随后各种apples使用这些值),或者为O(n log n)的时间(如Python的单位计算重新计算apple_evaluator每个排序使得比较时间值)?

python sorting time-complexity

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