hi-wind

c++ 中 vector

vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片区域所能容纳的元素个数。

capacity会随着你的使用vector内置函数而动态变化.

通常capacity会比size大,如果往vector中push_back数据,这样就不用重新申请内存和拷贝元素到新内存区域了,便于节省时间。

vector 之间可以之间赋值或者作为函数的返回值

初始化

与数组的初始化一样

vector<int> a = {11,2,3};

常用函数

#include <vector>
#include <iostream>
using namespace std;

int main()
{
	vector<int> vec;
}

多维的 vector 用法与多维的 string 一样。

在尾部添加元素:push_back(要添加的元素)

vec.push_back(3);

说明:把数字3加到vec的末尾。

注意:vector 类型的变量要想增加元素,只能用push_back() 函数

for(int i = 0;i<vec.size();i++)
    vec.push_back(i);

说明:将vec中的元素依次赋值为0 1 2 3 4 .......

在尾部删除元素:pop_back(空)

vec.pop_back();

说明:删除容器内的最后一个元素,容器的size减1。

之后仍然能通过push_back()来在尾部增加元素

因为pop_back()不会减小capacity.

读取长度:size(空)

int len = vec.size();

说明:将vec的长度(也就是其中的元素的个数)赋给len

改变大小: resize(改变后的长度,(用哪个元素补全))

假设此时vec的长度为4

vec.resize(2);  // 将vec的长度变为2,(注意vec是从0开始编号,因此此时vec的最后一个元素为vec[1]),vec[2:n]均被舍弃
vec.resize(6,3); // 将vec的长度变为6,此时vec[4:5] 均被赋值为3

且,resize函数只能对vec的size进行减小,而不能使得capacity减小

清空:clear()

vec.clear();

说明:把size设置成0,capacity不变。

检测是否为空 :empty()

if(vec.empty())
    cout<< "empty";
else 
    cout <<"full";

说明:对于 empty() 函数,如果为空,则返回 true,如果非空,则返回 false

相关文章:

猜你喜欢