首页 > 编程知识 正文

c中vector函数的使用,c语言总结

时间:2023-05-06 11:01:39 阅读:56042 作者:3768

矢量是向量类型,可以存储多种类型的数据,如多个整数,因此称为容器。 vector是C STL的重要成员,必须包含头文件。 #includevector;

一、载体初始化:有五种方法。 以下是示例。

(1)向量Inta ) 10; //10个整数元素的向量(方括号中是元素类型名,它可以是任何合法数据类型)定义,但是没有给出初始值,其值不确定。

(2)向量Inta (10,1 ); 定义//10个整数要素的向量,各要素的初始值设为1

)3)向量输入a (b ) b; //B向量创建a向量,整体上按副本赋值

)4) vectorinta(b.Begin )、b.begin 3); //A的值定义了b中从第0个到第2个的共计3个元素

(5) intb [7]={ 1,2,3,4,5,9,8 };

向量Inta (b,b 7); //从数组中得到初始值

二、vector对象的几个重要操作如下:

(1) a.assign (b.begin )、b.begin ) )3); //b是向量,将由0~2个要素构成的向量分配给a

)2) a.assign (4,2 ); //在a中只含有4个元素,各元素为2

(3)答.巴克); 返回//A的最后一个元素

(4) a.front ); 返回//A的第一个元素

)5) a[i]; 返回//A的第I个元素,仅在a[i]存在时2013-12-07

(6) a.clear ); //A中的元素清空

(7) a.empty ); 判断//A是否为空,如果为空则返回ture,如果不是空则返回false

(8) a.pop_back ); 删除//A向量的最后一个元素

(9) a.erase (a.begin )、a.begin )、3 ); 删除//a第1 (从第0个到)第2个要素。 也就是说,删除的元素为a.begin ) ) 1到) )包括它)、a.begin ) )、3到)以及不包括它)。

(10 ) a.push_back(5) 5; 在//A的最后一个向量后插入元素,其值为5

(11 ) a.insert (a.begin ) ) 1,5 ); 在//A的第一个元素(从第0个开始)的位置插入数值5,插入元素为1、5、2、3、4,如a为1、2、3、4

(12 ) a.insert (a.begin ) ) 1,3,5 ); 在//A的第一个元素(从第0个开始)的位置插入三个数字,其值均为5

(13 ) a.insert (a.begin ) ) 1、b 3、b 6); //b是一个数组,在a的第一个元素(从第0个开始计数)的位置插入b的第三个元素到第五个元素。 例如,b是1、2、3、4、5、9和8,插入元素后为1、4、5、9、9、2、3、4、5、9和8

(14 ) a.size ); 返回//A中元素的个数;

(15 ) a .容量); 返回//A可容纳在内存中的元素总数

(16 ) a.resize ) 10; //A的现有要素个数定为10个,多则删除,少则补充,其值随机

(17 ) a.resize ) 10,2 ); //A的现有要素的个数定为10个,多则删除,少则补充,其值为2

(18 ) a .保留) 100; 将//A容量(容量)扩展到100,即现在测试a.capacity; 的情况下,返回值为100。 只有在a中需要添加大量数据时,此操作才有意义。 这是为了避免内存的多次容量扩展操作。 (a容量不足时,计算机会自动扩展容量。 当然,会降低性能。 )

(19 ) a.swap(b ) b; //b是向量,整体上交换a中元素和b中的元素

(20 ) a==b; //b是向量,还有向量的比较操作!=,=,=,,

三.依次访问向量机的一些方法,举例如下:

(1)向向量a中添加元素

1向量Int a; 2for(intI=0; i10; I ) 3a.push_back(I; 2、也可以从数组中选择元素添加到向量中

inta [6]={ 1,2,3,4,5,6 }; vectorint b; for(intI=1; i=4; I ) b.push_back(a[I]; 3、也可以从现有向量中选择元素添加到向量中

inta [6]={ 1,2,3,4,5,6 }; vectorint b; 向量Intc (a,a 4); for (vector int :3360 iterator it=c.begin ); itc.end (; it ) b.push_back(*it ); 4、也可以从文件中读取元素并添加到向量中

ifstreamin(data.txt ); 向量Int a; for(intI; ini ) a.push_back(I; 5、【误区】

向量Int a; for(intI=0; i10; I ) a(I )=I; //这种做法和类似的做法都是错误的。 一开始我也犯了这样的错误,后来我发现下标只能用来获取现有的元素,而现在的a[i]仍然是空的对象

(2)从向量中读取要素

1、下标方式读取

inta [6]={ 1,2,3,4,5,6 }; vectorintb(a,a 4); for(intI=0; i=b.size ()-1; I ) coutb[i] '; 2、采用横移方式读取

inta [6]={ 1,2,3,4,5,6 }; vectorintb(a,a 4); for (vector int :3360 iterator it=b.begin ); it!=b.end (; it ) cout*it '; 四、一些重要算法必须包括头文件。 #includealgorithm

(1) sort ) a.Begin )、a.end ); //A中从a.begin () )到a.end () ) ) )的要素按从小到大的顺序排列

)2) reverse(a.Begin )、a.end ); //A中从a.begin () ()到a.end () ) )的元素倒置,但不排列,例如a中的元素为1、3、2、4时,倒置后为4、2、3、1

(3)复制(b.begin )、a.end )、b.begin )、1 ); //A中从a.begin ()到a.end () ) )的元素复制到b,从b.begin () ) ) 1的位置复制以覆盖原始元素

(4) find ) a.Begin )、a.end )、10 ); //a中从a.begin (包含)到a.end () ) ) )的元素中寻找10,并返回其在向量中的位置

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。