Это просто имя. C ++ vector вполне может (или, может быть, даже более точно) называться динамический массив или изменяемый размер массива , но это имя было просто выбрано . Этот вектор не совпадает с вектором из математики, потому что в математике векторы являются членами любого набора V , так что для этого набора определены две важные операции : + (сложение векторов) и x (умножение вектора на скаляр из поля F ), и эти операции удовлетворяют 8 аксиомам :
Ассоциативность сложения
u + (v + w) = (u + v) + w
Коммутативность сложения
u + v = v + u
Идентификационный элемент сложения
Существует элемент 0 ∈ V , называемый нулевым вектором , такой, что v + 0 = v для всех v ∈ V .
Обратные элементы сложения
Для каждого v ∈ V существует элемент −v ∈ V , называемый аддитивной обратной функции v, такой что v + (−v) = 0
Совместимость скалярного умножения с умножением поля
a (bv) = (ab) v
Идентификационный элемент скалярного умножения
1 v = v, где 1 обозначает мультипликативную идентичность in F .
Дистрибутивность скалярного умножения относительно сложения векторов
a (u + v) = au + av
Дистрибутивность скалярного умножения относительно сложения полей
(a + b) v = av + bv
C ++ std::vector
поддерживает все из них (не напрямую, а через функции C ++), поэтому его можно как-то назвать вектором, но это просто разговорный подход, например Vallaray
, на который указал Бьярн Страуструп в «Язык программирования C ++» поддерживает некоторые из них напрямую.