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

举报
人才程序员 发表于 2023/08/29 12:10:11 2023/08/29
【摘要】 @TOC 前言 一、查在C++中,使用vector进行查找操作可以分为两类:输出全部和输出单个元素。下面将详细介绍这些操作及其示例代码。 1.1 输出全部 迭代器使用迭代器可以遍历vector中的所有元素并进行输出。示例代码:#include <iostream>#include <vector>int main() { std::vector<int> vec = {1, 2, 3,...

@TOC


前言


一、查

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

1.1 输出全部

迭代器

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

示例代码:

#include <iostream>
#include <vector>

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;
}

在这里插入图片描述

下标运算

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

示例代码:

#include <iostream>
#include <vector>

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;
}

在这里插入图片描述

for_each函数

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

示例代码:

#include <iostream>
#include <vector>
#include <algorithm>

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;
}

在这里插入图片描述

1.2 输出单个元素

at()函数

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

示例代码:

#include <iostream>
#include <vector>

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

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

    return 0;
}

在这里插入图片描述

[] 下标运算

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

示例代码:

#include <iostream>
#include <vector>

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

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

    return 0;
}

在这里插入图片描述

back()函数

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

示例代码:

#include <iostream>
#include <vector>

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

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

    return 0;
}

在这里插入图片描述

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

二、改

assign函数

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

示例代码:

#include <iostream>
#include <vector>
#include <iterator>

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;
}

在这里插入图片描述

输出结果:4 5 6

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

#include <iostream>
#include <vector>

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

    vec.assign(4, 0);

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

    return 0;
}

在这里插入图片描述

输出结果:0 0 0 0

三、交换

swap函数

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

#include <iostream>
#include <vector>

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;
}

在这里插入图片描述

输出结果:

vec1: 4 5 6
vec2: 1 2 3

总结

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

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

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。