C++STL教程之vector模板的使用

C++STL教程之vector模板的使用

什么是vector?

vector是C++标准库中的一种容器,可以看作是包含一组元素的动态数组。与C-style数组相比,vector有许多好处:

  • 可以动态调整数组大小,无需手动分配内存
  • 便于元素的插入和删除操作
  • 支持自动内存管理,避免内存泄漏等问题

在使用vector之前,需要引入头文件 #include<vector>

如何创建vector?

可以使用以下方式创建一个vector对象:

vector<int> v1;  // 创建一个int类型的空vector
vector<double> v2(10);  // 创建一个含有10个double类型元素的vector
vector<string> v3(5, "hello");  // 创建一个含有5个字符串"hello"的vector

如何访问vector中的元素?

可以使用下标运算符([])或迭代器来访问vector中的元素。例如:

vector<int> v1 = {1, 2, 3, 4, 5};
int x = v1[0];  // 访问第一个元素
int y = v1.at(1);  // 访问第二个元素
vector<int>::iterator it = v1.begin();  // 创建一个指向第一个元素的迭代器

如何修改vector中的元素?

可以使用下标运算符或迭代器来修改vector中的元素。例如:

vector<int> v1 = {1, 2, 3, 4, 5};
v1[0] = 10;  // 修改第一个元素的值
vector<int>::iterator it = v1.begin();
*it = 20;  // 修改第一个元素的值

如何在vector中添加元素?

可以使用push_back函数在vector的末尾添加一个元素。例如:

vector<int> v1 = {1, 2, 3};
v1.push_back(4);  // 在末尾添加一个元素4
v1.push_back(5);  // 在末尾添加一个元素5

如何在vector中删除元素?

可以使用pop_back函数删除vector末尾的元素,或使用erase函数删除指定位置或指定区间的元素。例如:

vector<int> v1 = {1, 2, 3, 4, 5};
v1.pop_back();  // 删除末尾的元素5
v1.erase(v1.begin() + 1);  // 删除第二个元素2
v1.erase(v1.begin() + 1, v1.begin() + 3);  // 删除第二个和第三个元素

示例一:使用vector实现栈

#include <iostream>
#include <vector>

using namespace std;

class Stack {
private:
    vector<int> v;
public:
    void push(int x) {
        v.push_back(x);
    }
    void pop() {
        v.pop_back();
    }
    int top() {
        return v.back();
    }
    bool empty() {
        return v.empty();
    }
};

int main() {
    Stack s;
    s.push(1);
    s.push(2);
    s.push(3);
    while (!s.empty()) {
        cout << s.top() << endl;
        s.pop();
    }
    return 0;
}

示例二:使用vector实现二分查找

#include <iostream>
#include <vector>

using namespace std;

int binary_search(vector<int>& v, int x) {
    int left = 0, right = v.size() - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (v[mid] == x) {
            return mid;
        } else if (v[mid] < x) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

int main() {
    vector<int> v = {1, 3, 5, 7, 9};
    int index = binary_search(v, 5);
    if (index == -1) {
        cout << "not found" << endl;
    } else {
        cout << "found at index " << index << endl;
    }
    return 0;
}

以上就是关于vector模板的使用的基本攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++STL教程之vector模板的使用 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • java中JSONObject转换为HashMap(方法+main方法调用实例)

    将JSONObject转换为HashMap的方法: 首先,需要导入如下两个包: import org.json.JSONObject; import java.util.HashMap; 接着,通过以下代码可以将JSONObject对象转换为HashMap对象: JSONObject jsonObject = new JSONObject("{\&…

    C 2023年5月23日
    00
  • C语言中如何进行输入和输出操作?

    当我们学习编程语言时,输入和输出是非常重要的操作。在C语言中,可以通过标准输入输出库(stdiu.h)来实现输入和输出操作。 标准输入输出库 标准输入输出库是C语言中广泛使用的库,它提供了许多函数用于输入输出操作。下面是一些常用的函数: scanf():从标准输入流中读取数据并将其存储在变量中。 printf():将数据输出到标准输出流。 getchar()…

    C 2023年4月27日
    00
  • C++中的整形字节数

    当我们在C++中定义整型变量时,我们必须指定该变量的整型类型。不同的整型类型在内存中使用的字节数不同,并且可以容纳的数值范围也不同。在C++中,整型类型可以使用signed和unsigned修饰符。下面是C++中整型类型和它们在内存中使用的字节数的列表: 类型 字节数 范围 short(短整型) 2 有符号:-32768到32767,无符号:0到65535 …

    C 2023年5月23日
    00
  • C++程序中main(int argc, char *argv[])函数的参数意义

    下面是对“C++程序中main(int argc, char *argv[])函数的参数意义”的完整讲解。 main函数的定义 在C++程序中,main函数是程序的入口,用于在程序开始时运行。main函数有两个参数,其定义形式如下: int main(int argc, char *argv[]); 其中, argc:表示程序运行时命令行参数的个数(包括程序…

    C 2023年5月30日
    00
  • 基于C语言实现简易扫雷游戏

    基于C语言实现简易扫雷游戏攻略 介绍 扫雷游戏是一款经典的单人益智游戏,最早由微软公司开发,并已成为Windows操作系统默认自带的游戏之一。在扫雷游戏中,玩家需要找出所有雷所在的方格,并将它们标记出来,但不能点到任何一枚雷。本文将介绍如何基于C语言实现简易扫雷游戏。 准备工作 在开始编写游戏程序之前,需要了解以下几点: 游戏界面:使用C语言和控制台编写扫雷…

    C 2023年5月23日
    00
  • VScode配置C语言环境完整版(亲测可用)

    以下是“VScode配置C语言环境完整版(亲测可用)”的完整攻略: 步骤一:安装MinGW编译器 访问MinGW官网(https://sourceforge.net/projects/mingw-w64/),下载适合自己操作系统版本的MinGW编译器安装程序,并进行安装。 打开安装目录下的bin文件夹,并将其中的mingw32-make.exe、gcc.ex…

    C 2023年5月23日
    00
  • sigsetjmp的用法总结

    下面详细讲解一下”sigsetjmp的用法总结”的完整攻略。 什么是sigsetjmp 在进行sigsetjmp的用法总结之前,我们先来了解一下什么是sigsetjmp。sigsetjmp和setjmp是类似的函数,它们可以将程序的当前执行状态保存下来,以便之后程序可以回到这个状态,实现长跳转。不过在sigsetjmp的基础上额外增加了信号处理器的保存以及信…

    C 2023年5月23日
    00
  • 如何用C语言添加矩阵

    添加矩阵是C语言中常见的任务之一。以下是一些基本的步骤: 1. 定义矩阵 在C语言中,可以使用二维数组来定义矩阵。例如,以下代码定义了一个3×3的矩阵: int matrix[3][3] = { {1,2,3}, {4,5,6}, {7,8,9} }; 2. 显示矩阵 可以使用循环来遍历矩阵中的所有元素,并将它们打印出来。例如,以下代码使用嵌套循环来遍历矩阵…

    C 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部