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


前言


一、查

在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++编程时取得更多的成功!

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C++中,可以使用STL库中的vector和algorithm头文件来进行向量的查找。在引用的代码中,使用了find函数来查找向量中是否存在特定元素。具体来说,find函数接受两个参数,一个是指向向量起始位置的迭代器,另一个是指向向量末尾位置的迭代器。如果找到了指定元素,则返回指向该元素的迭代器;如果没有找到,则返回指向末尾位置的迭代器。在代码中,使用find函数查找向量vec中是否存在值为3的元素。如果找到了,就输出"Found";否则,输出"Not found"。 在引用的代码中,使用了迭代器来遍历向量。首先,使用begin函数获取向量的起始位置的迭代器,并将其赋值给iter。然后,使用迭代器的自增操作符(iter++)来遍历向量中的元素,并输出每个元素的值。接着,使用pop_back函数删除向量中的最后一个元素。最后,再次使用迭代器来遍历向量,并输出每个元素的值。这段代码展示了如何使用迭代器来遍历向量,并且在遍历过程中删除向量的元素。 在引用的代码中,使用了迭代器来删除向量中所有值为3的元素。首先,使用begin函数获取向量的起始位置的迭代器,并将其赋值给iter。然后,使用迭代器来遍历向量中的元素,并通过if语句判断当前元素的值是否为3。如果是,则使用erase函数删除该元素,并返回指向下一个元素的迭代器;如果不是,则继续遍历下一个元素。最后,使用迭代器再次遍历向量,并输出每个元素的值。这段代码展示了如何使用迭代器来删除向量中的元素。 综上所述,通过使用STL库中的vector和algorithm头文件,可以在C++中进行向量的查找。可以使用find函数来查找指定元素,使用迭代器来遍历向量并进行操作,如输出元素的值或删除元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++ vector向量的查找和删除](https://blog.csdn.net/chengqiuming/article/details/89784654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人才程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值