13.C++ vector 操作

简介:
vector初始化
    vector<int> v2;
    v2.push_back(333);
    v2.push_back(444);
    v2.push_back(555);

    //初始化的两种方式
    vector<int> v3 = v2;
    while (v3.size() > 0) {
        cout << "v3尾部元素" << v3.back() << endl;
        v3.pop_back();
    }

    vector<int> v4(v2.begin(), v2.end());

    while (v4.size() > 0) {
        cout << "v4尾部元素" << v4.back() << endl;
        v4.pop_back();
    }
vector大小
    //初始化了19个元素,那么再添加就是第20个
    vector<int> v(19);
    v.push_back(200);
    v.push_back(300);
    cout << "v.size="<<v.size()<< endl;
数组方式操作vector
    cout << "数组。。。。。。。。。"<< endl;
    vector<int> v(10);
    for (int i = 0; i < 10; i++) {
        v[i] = i + 100;
    }
    for (int i = 0; i < 10; i++) {
        cout << v.at(i)<< endl;
    }
迭代器方式操作vector
    vector<int> v(10);
    for (int i = 0; i < 10; i++) {
        v[i] = i + 1000;
    }
    for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }
反向迭代器操作vector
    vector<int> v(10);
    for (int i = 0; i < 10; i++) {
        v[i] = i + 1;
    }

    for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
    {
        cout << *it << endl;
    }

    //逆向迭代器
    for (vector<int>::reverse_iterator it = v.rbegin(); it != v.rend(); it++) {
        cout << *it<< endl;
    }
vector测试
    vector<int> v1;
    cout << "length:"<<v1.size()<< endl;

    v1.push_back(1);
    v1.push_back(11);
    v1.push_back(111);

    cout << "length:" << v1.size() << endl;

    
    cout << "头部元素"<<v1.front()<< endl;

    while (v1.size() > 0) {
        cout << "尾部元素" << v1.back() << endl;
        v1.pop_back();
    }

    //修改头部元素值
    //front()返回的是一个引用,可以当左值
    v1.push_back(000);
    v1.front() = 222;

    cout << "修改后的头部元素" << v1.front() << endl;
删除元素
    vector<int> v(10);
    for (int i = 0; i < 10; i++) {
        v[i] = i + 100;
    }
    for (int i = 0; i < 10; i++) {
        cout << v.at(i) << endl;
    }
    for (vector<int>::iterator it = v.begin(); it !=v.end();) {
        if (*it == 105) {
            //删除迭代器所指向元素的时候,erase删除函数会让it自动向后移动一位
            //所以这总条件下,for循环中的it++就不需要了,另外erase之后会返回
            //下一位iterator,所以需要通过it接收一次
            it = v.erase(it);
        }
        else {
            it++;
        }
    }
    //v.erase(v.begin());
    /*v.erase(v.begin(), v.begin() + 2);*/
    for (int i = 0; i < 9; i++) {
        cout << v.at(i) << endl;
    }
插入元素
    vector<int> v(10);
    for (int i = 0; i < 10; i++) {
        v[i] = i + 100;
    }
    for (int i = 0; i < 10; i++) {
        cout << v.at(i) << endl;
    }
    v.insert(v.begin(), 99);
    v.insert(v.end(), 200);
    for (int i = 0; i < 12; i++) {
        cout << v.at(i) << endl;
    }
相关文章
|
23天前
|
存储 编译器 C语言
【c++丨STL】vector的使用
本文介绍了C++ STL中的`vector`容器,包括其基本概念、主要接口及其使用方法。`vector`是一种动态数组,能够根据需要自动调整大小,提供了丰富的操作接口,如增删查改等。文章详细解释了`vector`的构造函数、赋值运算符、容量接口、迭代器接口、元素访问接口以及一些常用的增删操作函数。最后,还展示了如何使用`vector`创建字符串数组,体现了`vector`在实际编程中的灵活性和实用性。
48 4
|
5天前
|
存储 对象存储 C++
C++ 中 std::array<int, array_size> 与 std::vector<int> 的深入对比
本文深入对比了 C++ 标准库中的 `std::array` 和 `std::vector`,从内存管理、性能、功能特性、使用场景等方面详细分析了两者的差异。`std::array` 适合固定大小的数据和高性能需求,而 `std::vector` 则提供了动态调整大小的灵活性,适用于数据量不确定或需要频繁操作的场景。选择合适的容器可以提高代码的效率和可靠性。
22 0
|
9天前
|
存储 编译器 C语言
【c++丨STL】vector模拟实现
本文深入探讨了 `vector` 的底层实现原理,并尝试模拟实现其结构及常用接口。首先介绍了 `vector` 的底层是动态顺序表,使用三个迭代器(指针)来维护数组,分别为 `start`、`finish` 和 `end_of_storage`。接着详细讲解了如何实现 `vector` 的各种构造函数、析构函数、容量接口、迭代器接口、插入和删除操作等。最后提供了完整的模拟实现代码,帮助读者更好地理解和掌握 `vector` 的实现细节。
18 0
|
2月前
|
存储 C++ 索引
【C++打怪之路Lv9】-- vector
【C++打怪之路Lv9】-- vector
26 1
|
2月前
|
编译器 C++
【C++】—— vector模拟实现
【C++】—— vector模拟实现
|
2月前
|
算法 C++ 容器
C++之打造my vector篇(下)
C++之打造my vector篇(下)
35 0
|
2月前
|
存储 编译器 C++
C++之打造my vector篇(上)
C++之打造my vector篇(上)
34 0
|
2月前
|
算法 C++ 容器
【C++】—— vector使用
【C++】—— vector使用
|
2月前
|
存储 缓存 C++
C++番外篇——list与vector的比较
C++番外篇——list与vector的比较
26 0
|
2月前
|
C++
C++番外篇——vector的实现
C++番外篇——vector的实现
49 0
下一篇
DataWorks