c++ 容器vector中元素是vector,怎么访问

c++ 容器vector中元素是vector,怎么访问,第1张

联系C语言二维数组

vector< vector < int > > vct ;

vector<int> tmp;

tmppush_back(3);

vctpush_back(tmp);

vct[0][0]这样子访问

基本上就你的这两种方法了,

至于效率的问题,上面的答案看起来都有一定的道理,但到底哪一个对呢?或者都对?实践是检验真理的标准。测试一下就知道了。

#include <iostream>

#include <iomanip>

#include <Windowsh>

#include <vector>

#include <functional>

using namespace std;

int getbyindex(vector<int>& v)

{

//int n = vsize();

return v[vsize()-2];

}

int getbyit(vector<int>& v)

{

return (vend()-2);

}

double calltime(function<int(vector<int>&)> f,vector<int>& v)

{

LARGE_INTEGER start;

if (::QueryPerformanceCounter(&start) == FALSE)

throw "foo";

f(v);

LARGE_INTEGER end;

if (::QueryPerformanceCounter(&end) == FALSE)

throw "foo";

return static_cast<double>(endQuadPart - startQuadPart);

}

int main()

{

vector<int> v;

for(int i = 0;i<100;++i)

{

vpush_back(rand());

}

double t = calltime(getbyindex,v);

cout<<setprecision(10)<<t<<endl;

return 0;

}

大致的测试结果是,getbyindex要快一些。对于vector容器而言,采用index的方法,更加接近其实现底层——数组——的本质,自然有更快的理由。

javautilVector也实现了List接口,其描述的也是可变长度的对象数组

与ArrayList的差别:Vector是同步(线程安全)的,运行效率要低一些,主要用在多线程的环境中,而ArrayList是不同步的,适合在单线程中使用

常用方法:

public Vector() //空的向量列表,大小是10

public Object elementAt(int index) // 获取指定下标的元素

public void addElement(Object obj) //向当前的向量集合中加入一个元素

public void removeElementAt(int index) //移除指定下标处的元素

public void insertElementAt(E obj,int index) //向指定下标出插入一个元素

public boolean removeElement(Object obj) //删除下标最小的obj指定的元素

public void removeAllElements() //删除所有元素

public Object[] toArray() //组成数组

//

以上就是关于c++ 容器vector中元素是vector,怎么访问全部的内容,包括:c++ 容器vector中元素是vector,怎么访问、C++中有什么好的方法取得vector容器倒数第二个元素、Java Vector中的元素如何引用呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9301141.html

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

发表评论

登录后才能评论

评论列表(0条)

保存