【C++STL入门】vector查、改、交换

文章目录

  • 前言
  • 一、查
    • 1.1 输出全部
      • 迭代器
      • 下标运算
      • for_each函数
    • 1.2 输出单个元素
      • at()函数
      • [] 下标运算
      • back()函数
  • 二、改
    • assign函数
  • 三、交换
    • swap函数
  • 总结


前言


一、查

在C++中,使用vector进行查找操作可以分为两类:输出全部和输出单个元素。下面将详细介绍这些操作及其示例代码。

1.1 输出全部

迭代器

使用迭代器可以遍历vector中的所有元素并进行输出。

示例代码:

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用迭代器进行输出
    for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

【C++STL入门】vector查、改、交换_第1张图片

下标运算

使用下标运算符可以通过索引访问vector中的元素并进行输出。

示例代码:

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用下标运算符进行输出
    for (int i = 0; i < vec.size(); ++i) {
        std::cout << vec[i] << " ";
    }

    return 0;
}

【C++STL入门】vector查、改、交换_第2张图片

for_each函数

使用for_each函数可以对vector中的每个元素执行相同的操作进行输出。

示例代码:

#include 
#include 
#include 

void printElement(int element) {
    std::cout << element << " ";
}

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 使用for_each函数进行输出
    std::for_each(vec.begin(), vec.end(), printElement);

    return 0;
}

【C++STL入门】vector查、改、交换_第3张图片

1.2 输出单个元素

at()函数

使用at()函数可以通过索引访问vector中的单个元素并进行输出。at()函数提供了边界检查,可以确保索引在有效范围内。

示例代码:

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 输出第三个元素
    std::cout << vec.at(2) << std::endl;

    return 0;
}

【C++STL入门】vector查、改、交换_第4张图片

[] 下标运算

使用[]下标运算符同样可以通过索引访问vector中的单个元素并进行输出。但是,与at()函数不同的是,使用[]下标运算符时不会进行边界检查,因此请确保索引在有效范围内。

示例代码:

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 输出第三个元素
    std::cout << vec[2] << std::endl;

    return 0;
}

【C++STL入门】vector查、改、交换_第5张图片

back()函数

使用back()函数可以获取vector中的最后一个元素并进行输出。

示例代码:

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 输出最后一个元素
    std::cout << vec.back() << std::endl;

    return 0;
}

【C++STL入门】vector查、改、交换_第6张图片

以上是使用vector进行查找操作的示例代码,它们可以帮助您了解如何使用不同的方法来输出全部或单个元素。请根据实际需求选择适合的方法。

二、改

assign函数

1、void assign( input_iterator start, input_iterator end );
功能:将vector中的元素替换为使用迭代器范围内的元素。
参数:start是指向输入范围起始位置的迭代器,end是指向输入范围末尾位置的迭代器。
返回值:无。

示例代码:

#include 
#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3};
    std::vector<int> newElements = {4, 5, 6};

    vec.assign(newElements.begin(), newElements.end());

    // 输出vector中的元素
    for (int num : vec) {
        std::cout << num << " ";
    }

    return 0;
}

【C++STL入门】vector查、改、交换_第7张图片

输出结果:4 5 6

2、void assign( size_type num, const T &val );
功能:将vector中的元素替换为指定数量的相同值。
参数:num是要生成的元素数量,val是要分配给每个元素的值。
返回值:无。
示例代码:

#include 
#include 

int main() {
    std::vector<int> vec = {1, 2, 3};

    vec.assign(4, 0);

    // 输出vector中的元素
    for (int num : vec) {
        std::cout << num << " ";
    }

    return 0;
}

【C++STL入门】vector查、改、交换_第8张图片

输出结果:0 0 0 0

三、交换

swap函数

1、 void swap( vector &from );
功能:交换两个vector的内容。
参数:from是另一个vector,将与当前vector互换元素。
返回值:无。
示例代码:

#include 
#include 

int main() {
    std::vector<int> vec1 = {1, 2, 3};
    std::vector<int> vec2 = {4, 5, 6};

    vec1.swap(vec2);

    // 输出交换后的vector中的元素
    std::cout << "vec1: ";
    for (int num : vec1) {
        std::cout << num << " ";
    }

    std::cout << std::endl;

    std::cout << "vec2: ";
    for (int num : vec2) {
        std::cout << num << " ";
    }

    return 0;
}

【C++STL入门】vector查、改、交换_第9张图片

输出结果:

vec1: 4 5 6
vec2: 1 2 3

总结

在本文中,我们讨论了如何使用vector进行查找和修改操作。我们介绍了使用循环和迭代器进行遍历,使用下标运算符和for_each函数输出全部元素的方法。我们还了解了如何使用at()函数进行边界检查和使用back()函数获取最后一个元素。这些方法可以帮助您有效地操作和管理vector中的数据。Vector是C++ STL中的一个重要容器,掌握它的基本用法对于开发高效的C++程序非常关键。

希望本文对您理解vector的基本操作和使用有所帮助。祝您在使用C++编程时取得更多的成功!

你可能感兴趣的:(C++STL,c++,开发语言,C,软件工程,后端,stl,数据结构)