vector怎么添加元素
定义一个vector<int>v;怎么向其中添加无序数组。比如要添加一组数0,1,3,5,6,4,2,……个数确定,数却没有顺序。除了多次调用push_back()之外还...
定义一个vector<int> v;怎么向其中添加无序数组。比如要添加一组数0,1,3,5,6,4,2,……个数确定,数却没有顺序。除了多次调用push_back()之外还有别的高效的方法吗?因为当数的个数多的时候调用puh_back()显然效率不高。
展开
3个回答
2014-03-13
展开全部
你可以从数组构造
比如int a[] = { 0,1,3,5,6,4,2.... };
vector<int> v( a, a + sizeof( a ) / sizeof( a[0] ) );
动态添加就只有用push_back了
楼下说的对,我都快忘了。可以用resize预置vector的容量,这样就能免除push_back由于空间超过默认分配的定量内存时而重分配更大的一块新空间并把原内容重新拷过去所带来的效率损失,vector内部自动维护了一块定量的内存,这个空间可以用capacity()方法查看。
比如int a[] = { 0,1,3,5,6,4,2.... };
vector<int> v( a, a + sizeof( a ) / sizeof( a[0] ) );
动态添加就只有用push_back了
楼下说的对,我都快忘了。可以用resize预置vector的容量,这样就能免除push_back由于空间超过默认分配的定量内存时而重分配更大的一块新空间并把原内容重新拷过去所带来的效率损失,vector内部自动维护了一块定量的内存,这个空间可以用capacity()方法查看。
推荐于2018-04-11 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
你可以从数组构造
比如int a[] = { 0,1,3,5,6,4,2.... };
vector<int> v( a, a + sizeof( a ) / sizeof( a[0] ) );
动态添加就只有用push_back了
可以用resize预置vector的容量,这样就能免除push_back由于空间超过默认分配的定量内存时而重分配更大的一块新空间并把原内容重新拷过去所带来的效率损失,vector内部自动维护了一块定量的内存,这个空间可以用capacity()方法查看。
比如int a[] = { 0,1,3,5,6,4,2.... };
vector<int> v( a, a + sizeof( a ) / sizeof( a[0] ) );
动态添加就只有用push_back了
可以用resize预置vector的容量,这样就能免除push_back由于空间超过默认分配的定量内存时而重分配更大的一块新空间并把原内容重新拷过去所带来的效率损失,vector内部自动维护了一块定量的内存,这个空间可以用capacity()方法查看。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-13
展开全部
续LS所说,也可以用resize(),比如v.resize(10),数组大小就变成了10,push_back的效率是不高,因为中间会有拓展2倍大小的过程.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询