
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中的元素(元素是一个数组)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)