怎样从vector中取出数据

怎样从vector中取出数据,第1张

vector重载了[] *** 作符,所以取出数据和数组一样用;

参考方法如下:

vector<int> name1;

while(cin>>m_gname)

namepush_back(m_gname);

for(vector<string>::iterator iter1=namebegin();iter1!=nameend();iter1++)

{

cout<<iter

}

因为你的first和last都是在for循环里面定义的,只在for循环里面有效,就是说这两个变量的作用域只在for循环这个代码块内。

请查一下C/C++变量作用域的相关内容:>

for(int i =0; i<n; ++i) //n为数组长度

{

if(a[i] == temp) //temp为要查找 的元素

return i; //i为该元素在数组中的位置

}

vector<int >这样vector里面的元素是指针,指向外面的空间,在这里所有元素指向a[]数组,它们共享空间。造成这种情况。

可以修改成:

class pos

{

public:

int x, y;

pos(int xx, int yy):x(xx),y(yy){}

};

vector<pos> Position;

这样压入新坐标时可以

Positionpush_back( pos(2, 3));就压入一个新坐标(2,3)

Position[i]x来访问横坐标

vector是向量类型,可以容纳许多类型的数据。使用时需包含头文件:#include<vector>

关于vector的内存空间,有两个函数需要注意:size()成员指当前拥有的元素个数;capacity()成员指当前(容器必须分配新存储空间之前)可以存储的元素个数reserve()成员可以用来控制容器的预留空间。vector另外一个特性在于它的内存空间会自增长,每当vector容器不得不分配新的存储空间时,会以加倍当前容量的分配策略实现重新分配。例如,当前capacity为50,当添加第51个元素时,预留空间不够用了,vector容器会重新分配大小为100(原来的两倍)的内存空间,作为新连续存储的位置。

vector的内存占用空间只增不减,所有内存空间是在vector析构时候才能被系统回收。

可以用swap()来帮助你释放内存。具体方法如下:

如果vector中存放的是指针,那么当vector销毁时,这些指针指向的对象不会被销毁,那么内存就不会被释放。如下面这种情况,vector中的元素时由new *** 作动态申请出来的对象指针:

~vector()

销毁容器对象并回收了所有分配的内存

Vector是一个容器,可以容纳不同类型的对象,数组也可以。

比如有个int型数组: int data1[] = { 1, 2, 3 };

放入vector:vaddElement(data1);

然后可以这么取:

for(int integer:(int [])velementAt(i) ){

Systemoutprintln(integer);

}

完整的例子如下:

import javautilVector;

class Test{

public static void main(String args[]) {

   //定义整形数组:

 int data1[] = { 1, 2, 3 };

 int data2[] = { 4, 5, 6 };

 int data3[] = { 7, 8, 9 };

 //定义一个vector容器对象

 Vector v = new Vector();

  //向容器中放数组

 vaddElement(data1);

 vaddElement(data2);

 vaddElement(data3);

  //开始循环迭代数组对象

 for (int i = 0; i < vsize(); i++) {

  Systemoutprintln("----------");

  //由于没有用泛型,这里需要类型强制转化,转换为int[]才可以遍历出来

  for(int integer:(int [])velementAt(i) ){ 

   Systemoutprintln(integer);

  }

 }

}

}

front()返回的的确是第一个元素的引用。

但是你定义的b并不是一个引用, *** 作b不会对a中的元素造成影响。

若定义

int &b=afront();则对b的 *** 作会影响a中第一个元素。

以上就是关于怎样从vector中取出数据全部的内容,包括:怎样从vector中取出数据、下面一段程序 关于用选代器来求vector 元素首尾之和的、Java怎么读取Vector中的元素(元素是一个数组)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9734463.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存