vector的含义

数学中,vector(向量)表示一个量,由大小和方向构成。比如坐标中的一个带箭头的线段 -- 它1厘米长,正弦值六分之一π(30度角)。

计算机的c++、java中,vector表示一种一维的数组。比如,一个命名为"fibonacci"的vector,它用来存储斐波那契数列,会是这样的:

fibonacci[0] = 0, fibonacci[1] = 1, fibonacci[2] = 1, fibonacci[3] = 2, fibonacci[4] = 3, fibonacci[5] = 5

那vector是不是array的马甲呢。vector类似array,但不是array。vectors拥有自己的内存管理机制,array却在编程语言写死了,比如一个stack。vectors都拥有一个额外的动态结构,比如一个heap。array是固定大小的,vector在插入数据的时候可以变大,在删除数据的时候可以变小,这都是自动的。

在密码学中,vector表示提供给加密算法的种子,为什么叫vector而不叫种子的原因。我想可能是vector这个词够屌,如果也叫它种子的话,那么密码学的存在感在哪里呢。是的,当你听到vector这个词的时候,那是一种带有方向的量,如梦似幻,仿佛看到一个美女翱翔在天际。

计算机的机器中,vector表示一个内存区域,在这个区域中,存放着所有中断处理例程构成的表格。在操作系统中,它被称作中断向量表。注意:矛盾在这里产生了,因为vector的意思在这里不是向量,它是一个多义词,它的意思就是vector,你可以理解成内存,但是不要理解成向量。

由此看来,vector显然是一个多义词。并且在计算机学科中,不能把它联想成向量。或许计算机设计人员实在想不到更好的词来描述它,最后还是选了它,不过我真的不喜欢这个词。

为什么会混乱呢?

深层的原因,是人类的虚伪、自私和狡诈造成的,试想我发明了一个学科,我怎么可能还使用那些以前“陈旧”的,“注定被历史淘汰”的词语来表达我的学说呢。周末我去拍婚纱照,销售人员似乎发明了一门复杂的学科,名词有:多低精选(就是从底片中选几张),入册,内景,外景,妆面,摄影基地,底片翻倍,总监级摄影师。规则更是数不胜数,底片多一张加80,相片多一张加200。其他一些风花雪月的套餐更是不得了,首尔风情,巴黎之恋。。。影楼的销售冠军年销售额突破8000万,成了成功人士。他的理念就是不停的创新。他说的创新是摄影的创新吗,不是。是规则的创新,是穿我家额外的高跟鞋要加多少钱,用我家更好的化妆水要加多少钱 -- 类似的创新。

表层的原因,是语言的隔阂。难道不知道英语一次多义吗。教科书中都把它翻译成向量,真是误人。

时间: 2024-08-12 18:36:53

vector的含义的相关文章

STL源码之vector

1. SGI的vector SGI stl vector继承子一个基类: template<typename _Tp, typename _Alloc = std::allocator<_Tp> >     class vector : protected _Vector_base<_Tp, _Alloc> 在基类中定义了基本的一些操作,并且封装了了vector所需要的基本的三个指针: struct _Vector_impl       : public _Tp_all

Vector容器 和 iteration 迭代器

vector容器 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包含其他对象.一个容器中的所有对象都必须是同一种类型的. 使用vector之前,必须包含相应的头文件.#include <vector> using std::vector; vector是一个类模板(class template).模板允许程序员编写单个类或函数定义,这个类和函数定义可用于不同的数据类型上.

vector,deque,list相关操作

1.vector的基本操作 (1).对动态数组元素的添加和删除.获取 代码如下: #include<iostream> #include<vector> using namespace std; //数组元素的添加和删除.获取 int main(void){     vector<int> v1;      v1.push_back(1);     v1.push_back(2);     v1.push_back(3);     cout<<"l

vector初始化

对vector对象来说,直接初始化的方式适用于3种情况:1.初始值已知且数量少:2.初始值是另一个vector对象的副本:3.所有元素的初始值都一样.此外还有一种更常见的情况是4.创建一个vector对象时并不清楚实际所需元素的个数,元素的值也无法确定.或者元素的初值已知,但如果这些总量较大而各部相同(对于这种情况,更好的处理方法是先创建一个空vector,然后再运行时再利用vector的成员函数push_back向其中添加元素). 1.vector<T> v1 v1是一个空vector,它潜

STL中的Vector相关用法

STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int>是一种数据类型. Vector的存储空间是连续的,list不是连续存储的. 1. 定义和初始化 vector< typeName > v1; //默认v1为空,故下面的赋值是错误的v1[0]=5;//v2是v1的一个副本,若v1.size()>v2.size()则赋值后v2.size()被

[转] C++箴言:理解typename的两个含义

文章转自:C++箴言:理解typename的两个含义 问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template<class T> class Widget; // uses "class" template<typename T> class Widget; // uses "typename" 答案:没什么不同.在声明一个 template type para

备忘: C++中的 vector 容器

在C++ 中使用 vector:容器或叫向量.对用来管理不定长度的数据集或经常变化的数据组,很方便.可以简单的理解他是一种数据组,一种数据类型的集合. vector是同一种类型的对象的集合.它相当于一个动态的数组, 当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 使用vector首先要在程序开头处加上头文件,并使用其命名 : #include <vector> using std::vector; vector的声明与初始化: vector <类型

把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 相关的内存,因为vetcor是类模版,对应多个不同类型,比如int,string,或者自己定义的数据类型等. 程序开头应如下声明 #include <iostream> #include <vector> #include <string> using std::strin

STL之Vector(不定长数组)

vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vector对象的定义和初始化 vector<T> v1 vector保存类型为T的对象.默认构造函数,v1为空 vector<T> v2(v1) v2是v1的一个副本 vector<T> v3(n,i) v3包含n个值为i的元素 vector<T> v4(n) v4含有