vector怎么添加元素
答案:2 悬赏:60 手机版
解决时间 2021-04-21 21:14
- 提问者网友:藍了天白赴美
- 2021-04-20 22:16
定义一个vector v;怎么向其中添加无序数组。比如要添加一组数0,1,3,5,6,4,2,……个数确定,数却没有顺序。除了多次调用push_back()之外还有别的高效的方法吗?因为当数的个数多的时候调用puh_back()显然效率不高。
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-04-20 23:31
你可以从数组构造
比如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()方法查看。
全部回答
- 1楼网友:西风乍起
- 2021-04-21 00:50
续LS所说,也可以用resize(),比如v.resize(10),数组大小就变成了10,push_back的效率是不高,因为中间会有拓展2倍大小的过程.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯