Добавление типов к пространству имен станд.

Просто добавьте plt.arrow():

from matplotlib import pyplot as plt
import numpy as np

# your function
def f(t): return np.sin(t)

t = np.linspace(-2, 2, 100)
plt.plot(t, f(t))
plt.arrow(0, f(0), 0.01, f(0.01)-f(0), shape='full', lw=0, length_includes_head=True, head_width=.05)
plt.show()

EDIT: Изменены параметры стрелки, чтобы включить положение & amp; направление функции для рисования.

16
задан Rob 26 November 2008 в 14:09
поделиться

5 ответов

Нет... часть точки пространства имен должна предотвратить коллизии имени на обновлении.

, Если Вы добавляете вещи к пространству имен станд., тогда Ваш код мог бы порвать со следующим выпуском библиотеки, если они решают добавить что-то с тем же именем.

18
ответ дан 30 November 2019 в 15:18
поделиться

Только специализации позволяются. Так, например, Вам разрешают специализироваться std::numeric_limits для Вашего типа. И это, конечно, должно произойти в пространстве имен std::. Но Ваше определение типа не является специализацией, таким образом, это вызывает неопределенное поведение.

19
ответ дан 30 November 2019 в 15:18
поделиться

Необходимо использовать собственное пространство имен в качестве добавляющий, что код к стандартной библиотеке только смутит пользователей, которые будут онлайн искать информацию о том дополнении.

Все, что находится в станд., должно быть только стандартной библиотекой и ничем иным.

3
ответ дан 30 November 2019 в 15:18
поделиться

Официально, в стандарте говорится, что это - "неопределенное поведение", и все виды противных вещей могут произойти.

На практике, это будет хорошо работать, но Вы все еще не должны делать этого. Что это покупает Вас кроме запутывающих людей, которых чему-то предоставляет компилятор?

2
ответ дан 30 November 2019 в 15:18
поделиться

Я полностью соглашаюсь с другими ответами, говоря, что необходимо поместить типы в собственное пространство имен для предотвращения неудачных коллизий имени.

Однако я хотел к точному, что иногда , Вы можете (и если!) добавляет материал в пространстве имен станд. Дело обстоит так для шаблонных специализаций станд.:: метод подкачки, например, которые используются для обеспечения универсального способа подкачать объекты. Для получения дополнительной информации об этом вопросе можно читать о идиома подкачки неброска .

1
ответ дан 30 November 2019 в 15:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: