c++ vector用法详解

C++中的vector被称为容器,它提供了一种方便灵活的方式来管理数据,并且在许多场景下比其他类似的容器更加高效。

vector可以存储多种类型的数据,包括基本数据类型和自定义数据类型。和数组相比,vector提供了更方便的方法来管理数据,可以自动调整大小,并提供了访问和操作数据的丰富方法。

下面是一些vector的用法示例:

### 声明和初始化

首先,需要包含头文件,然后可以使用vector关键字来声明一个vector变量:

```

#include

using namespace std;

vector v; //声明一个int类型的空vector

```

也可以使用{}的列表初始化方式来创建vector:

```

vector v {1, 2, 3}; //创建一个包含3个元素的int类型vector

```

另外,可以使用拷贝构造函数来创建一个新的vector:

```

vector v1 {1, 2, 3};

vector v2(v1); //创建一个与v1相同的新vector

```

### 访问和修改vector元素

可以使用[]操作符来访问vector中的元素,就像访问数组一样:

```

vector v {1, 2, 3};

cout << v[0] << endl; //输出1

```

当然,也可以使用at()方法来访问某个元素,它提供了越界检查,如果访问越界会抛出异常:

```

vector v {1, 2, 3};

cout << v.at(0) << endl; //输出1

cout << v.at(100) << endl; //抛出异常

```

还可以使用front()和back()方法来访问第一个和最后一个元素:

```

vector v {1, 2, 3};

cout << v.front() << endl; //输出1

cout << v.back() << endl; //输出3

```

可以使用[]操作符或at()方法修改vector中的元素:

```

vector v {1, 2, 3};

v[0] = 10; //将第一个元素修改为10

v.at(1) = 20; //将第二个元素修改为20

```

还可以使用assign()方法来将整个vector替换为新的元素序列:

```

vector v {1, 2, 3};

v.assign({4, 5, 6}); //将vector替换为{4, 5, 6}

```

### 添加和删除元素

可以使用push_back()方法在vector的尾部插入一个元素:

```

vector v {1, 2, 3};

v.push_back(4); //在vector尾部插入4

```

另外,可以使用emplace_back()方法向vector中添加一个新元素,它的参数是要添加的元素的构造函数的参数,会在vector中直接创建一个新元素:

```

vector> v; //声明一个pair类型的vector

v.emplace_back(1, "one"); //在vector尾部插入一个pair元素

```

可以使用insert()方法在任意位置插入一个或多个元素:

```

vector v {1, 2, 3};

v.insert(v.begin() + 1, 10); //在第二个位置插入10

v.insert(v.begin() + 1, {20, 30}); //在第二个位置插入20, 30

```

可以使用erase()方法删除一个或多个元素:

```

vector v {1, 2, 3};

v.erase(v.begin() + 1); //删除第二个元素

v.erase(v.begin() + 1, v.begin() + 3); //删除第二个和第三个元素

```

### vector的遍历

可以使用循环语句来遍历vector中的所有元素:

```

vector v {1, 2, 3};

for (int i = 0; i < v.size(); i++) {

cout << v[i] << " ";

}

```

还可以使用C++11中的范围for循环来遍历vector:

```

vector v {1, 2, 3};

for (auto x : v) {

cout << x << " ";

}

```

### vector的属性和方法

除了上述常见的操作,vector还提供了一些其他的属性和方法,可以方便地获取或修改vector的一些信息。

- size()方法:返回vector中元素的个数

- empty()方法:检查vector是否为空,返回true或false

- reserve()方法:预留vector的容量,避免频繁扩容

- capacity()方法:返回vector当前的容量

- shrink_to_fit()方法:将vector的容量调整为当前元素的数量

- clear()方法:删除vector中所有元素,使其变为空vector

- swap()方法:交换两个vector的元素

### 总结

vector是一个十分常用的C++容器,它提供了丰富的操作和一些方便的属性和方法,可以方便地管理数据。熟练掌握vector的用法,可以提高C++程序的开发效率和代码质量。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(69) 打赏

评论列表 共有 1 条评论

奈我何 1年前 回复TA

一天很短,短得来不及拥抱清晨,就已经手握黄昏;一年很短,短得来不及细品初春殷红窦绿,就要打点素裹秋霜;一生很短,短得来不及享用美好年华,就已经身处迟暮。愿我们能看尽繁华,栖身城外,待良人归来,携手同游人间!

立即
投稿
发表
评论
返回
顶部