Что такое векторы и как они используются в программировании?

В моем случае мне нужно было создать новую папку в каталоге www с именем scripts. Внутри scripts я добавил новый файл с именем test.py.

Затем я использовал sudo chown www-data:root scripts и sudo chown www-data:root test.py.

Затем я перешел в новый каталог scripts и использовал sudo chmod +x test.py.

Мой тест .py, это выглядит так. Обратите внимание на другую версию Python:

#!/usr/bin/env python3.5
print("Hello World!")

Из php теперь я делаю это:

$message = exec("/var/www/scripts/test.py 2>&1");
print_r($message);

И вы должны увидеть: Hello World!

38
задан Lawrence Johnston 3 February 2009 в 18:44
поделиться

7 ответов

От http://www.cplusplus.com/reference/stl/vector/

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

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

, Кроме того, векторы могут обычно содержать любой объект - таким образом, можно сделать класс, чтобы содержать информацию о механизмах и затем сохранить флот в векторе.

Хорошие вещи о векторах, кроме изменения размеров, состоят в том, что они все еще предоставляют доступ в постоянное время к отдельным элементам через индекс, точно так же, как массив.

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

-Adam

39
ответ дан Adam Davis 10 October 2019 в 07:17
поделиться

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

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

Векторы способны:

  • отдельные элементы Доступа их индексом положения (постоянное время).
  • Итерация по элементам в любом порядке (линейное время).
  • Добавляют и удаляют элементы из его конца (постоянное амортизируемое время).

КАСАТЕЛЬНО

4
ответ дан Greg Hewgill 10 October 2019 в 07:17
поделиться

Я могу понять Ваш беспорядок с имен (я раньше смущался этим также). Этому не помогает идея Вектора в 3D графическом программировании, которое ближе к математическому определению. В математике Вектор может считаться 1-мерной матрицей произвольной длины (при этом длина является количеством размеров Вашей системы координат). На большинстве языков OO векторы являются чрезвычайно 1-мерными матрицами (массивы), отсюда имя. Они не имеют никакого отношения к координатам, если программист не решает использовать их для той задачи (который редок - я никогда не видел его). У них также обычно нет математических операторов для того, чтобы сделать умножение матриц или любые подобные операции. Таким образом, 1-мерная природа их о том, где подобие заканчивается. Я предоставлю другим ответам право объяснять функции и использование контейнера OO, на котором у них уже есть дескриптор.

2
ответ дан rmeador 10 October 2019 в 07:17
поделиться

В математике вектор может считаться комбинацией направления и величины. Однако это может также считаться координатой. Например, вектор с магнитудой 5 и углом приблизительно 37 градусов от горизонтали представляет точку на 2D плоскости. Эта точка может также быть представлена с парой Декартовой координаты (3, 4). Эта пара (3, 4) является также математическим вектором.

В программировании, это имя "вектор" первоначально использовалось для описания любой последовательности фиксированной длины скалярных чисел. Вектор длины 2 представляет точку в 2D плоскости, вектор длины 3 представляет точку в 3D пространстве и так далее. Вектор длины 100 представляет точку в 100-мерном пространстве (математики не испытывают никаких затруднений при размышлении о таких вещах).

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

21
ответ дан Greg Hewgill 10 October 2019 в 07:17
поделиться

Математические векторы, к которым Вы привыкли, тензоры разряда один ; структуры данных в информатике не обязательно повинуются правилам преобразования тензора. Они - просто массивы, которые могут расшириться и сократиться, как отмечено ранее.

7
ответ дан duffymo 10 October 2019 в 07:17
поделиться

Так как по крайней мере два из других ответов вставляются от этот сайт , Вы могли бы также хотеть считать остальную часть описания там... :-)

2
ответ дан Adrian Grigore 10 October 2019 в 07:17
поделиться

От книга SICP:

память компьютера модели To, мы используем новый вид структуры данных, названной вектором. Абстрактно, вектор является составным объектом данных, к отдельным элементам которого можно получить доступ посредством целочисленного индекса за количество времени, которое независимо от индекса.

2
ответ дан Nemanja Trifunovic 10 October 2019 в 07:17
поделиться
Другие вопросы по тегам:

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