iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++STL中vector模板类是什么
  • 752
分享到

C++STL中vector模板类是什么

2023-06-29 12:06:59 752人浏览 独家记忆
摘要

小编给大家分享一下c++STL中vector模板类是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vector模板类创建vector对象,遍历元素vector

小编给大家分享一下c++STL中vector模板类是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    vector模板类

    创建vector对象,遍历元素

    vector模板类在头文件vector中,用于存储数组,并采用动态内存分配。

    创建一个vector对象并初始化长度,通过[]运算符访问元素:

    #include <vector>using namespace std;int main(){    vector<int> vec(5); // vec length 5    vec[0] = 1;    return 1;}

    可以采用for循环遍历vector元素,C++11提供了采用范围for循环来遍历STL容器

    for(int i=0; i < 5; i++) // generalcout << vec[i] << '\n';// equal tofor(int i: vec) // rangecout << i << '\n';

    迭代器

    迭代器是STL中,类似指针的类,指向容器中的某个元素。

    创建一个正向迭代器:

    vector<int>::iterator t;t = vec.begin();*t = 1; // vec[0] = 1t++; // vec[1]

    迭代器就像一个指针,具有*++运算符。

    容器的基本方法

    STL容器都提供了一些基本方法,包括:

    • size():返回容器中的元素数目

    • swap():交换两个容器的内容

    • begin():返回一个指向容器中第一个元素的迭代器

    • end():返回一个指向容器末尾元素后一个元素的迭代器

    此外,vector还包含一些部分容器拥有的方法:

    • push_back():在容器末尾添加一个元素

    • pop_back():删除容器末尾的元素

    • erase():给定一个迭代器,删除该迭代器指向的元素;给定两个迭代器it1, it2,删除容器内区间[it1, it2)的元素

    • insert():给定一个迭代器和一个元素,在该迭代器指向处插入该元素;给定三个迭代器it1, it2, it3,将容器区间[it2, it3)的元素插入到it1处。\

    • clear():清除容器中所有元素

    此外还有一些有用的方法,以后碰上再总结

    #include <cstdio>#include <iOStream>#include <cstring>#include <vector>using namespace std;int main(){    vector<int> vec(5);    vector<int> copyvec(vec);    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    vector<int>::iterator t;    t = vec.begin();    *t = 1;    for(int i: vec)        cout << i <<'\n';    cout << '\n';    cout << vec.size() << endl;    cout << '\n';    vec.swap(copyvec);    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    vec.insert(vec.end(), copyvec.begin(), copyvec.end());    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    vec.erase(vec.begin(), (vec.begin()+5));    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    vec.push_back(2);    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    vec.pop_back();    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    vec.clear();    std::cout << vec.size() <<endl;    cout << '\n';    return 1;}

    STL函数,sort

    STL通过泛型编程的思想定义了很多STL函数,用于各种容器类的通用操作,如搜索,排序等。

    头文件alGorithm提供了这些STL函数,以sort排序为例,sort函数参数为前后两个迭代器以及一个比较方法:
    template <typename Iter> void sort (Iter first, Iter last, Compare comp);比较区间为[first, last),comp表示函数指针:

    #include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){    vector<int> vec;    vec.push_back(2);    vec.push_back(4);    vec.push_back(1);    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    sort(vec.begin(), vec.end());    for(int i: vec)        cout << i <<'\n';    cout <<'\n';    return 1;}

    如果不提供比较方法,则默认使用容器元素定义的<进行比较;如果提供Compare函数指针,则根据返回的true, false进行排序,true表示Compare参数顺序正确:

    bool smaller(const int& a, const int& b){    if(a >= b)        return true;    return false;}sort(vec.begin(), vec.end(), smaller);// 4 2 1

    以上是“C++STL中vector模板类是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网其他教程频道!

    --结束END--

    本文标题: C++STL中vector模板类是什么

    本文链接: https://www.lsjlt.com/news/324702.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • C++STL中vector模板类是什么
      小编给大家分享一下C++STL中vector模板类是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vector模板类创建vector对象,遍历元素vector...
      99+
      2023-06-29
    • C++STL之vector模板类详解
      目录前言vector模板类创建vector对象,遍历元素迭代器容器的基本方法STL函数,sort总结前言 STL标准模板库是C++中非常有用的功能库。本篇从vector容器开始学习S...
      99+
      2022-11-13
    • C++中vector和list区别是什么
      这篇文章主要讲解了“C++中vector和list区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中vector和list区别是什么”吧!一张表格让你理解vector和list...
      99+
      2023-06-26
    • c++中STL库队列是什么意思
      这篇文章主要为大家展示了“c++中STL库队列是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“c++中STL库队列是什么意思”这篇文章吧。queue单向队列(先进先出,只能从尾端加元素,...
      99+
      2023-06-22
    • C++非类型类模板参数的基本概念是什么
      C++非类型类模板参数的基本概念是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C++编程语言已经出现就立即引起了开发人员的注意,它具有C语言的所用功能,并...
      99+
      2023-06-17
    • C++模板使用方法是什么
      本篇文章为大家展示了C++模板使用方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++编程语言中的模板应用在一定程度上大大提高了程序开发的效率。我们为大家详细讲解一下有关C++模板的基本概...
      99+
      2023-06-17
    • TypeScript 4.1中的模板字面类型是什么
      这篇文章主要介绍“TypeScript 4.1中的模板字面类型是什么”,在日常操作中,相信很多人在TypeScript 4.1中的模板字面类型是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”TypeScr...
      99+
      2023-06-15
    • c++类函数作为模板参数实现的方法是什么
      今天小编给大家分享一下c++类函数作为模板参数实现的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。需求背景DB操作...
      99+
      2023-07-05
    • C++模板参数的具体概念是什么
      这篇文章给大家介绍C++模板参数的具体概念是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++编程语言是一个功能强大的计算机应用语言,它的出现在一定程度上大大降低了开发人员的负担,提高了开发效率。我们在这里先来了...
      99+
      2023-06-17
    • Python中的Flask模板是什么
      Python中的Flask模板是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在一般的 Web 程序里,访问一个地址通常会返回一个包含各类信息的 HTML 页面。因为我们的...
      99+
      2023-06-25
    • C语言的模板与泛型编程是什么
      本篇内容主要讲解“C语言的模板与泛型编程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言的模板与泛型编程是什么”吧!模板与泛型编程浅谈摘要(Effective C++):C++temp...
      99+
      2023-06-29
    • vue中的模板语法是什么
      本文小编为大家详细介绍“vue中的模板语法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中的模板语法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、模板语法模板语法分为插值语法和指令语法两种...
      99+
      2023-06-29
    • js中什么是模板字符串
      这篇文章主要为大家展示了“js中什么是模板字符串”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js中什么是模板字符串”这篇文章吧。什么是模板字符串?模板字符串是...
      99+
      2022-10-19
    • C++可变参数模板的展开方式是什么
      这篇文章主要讲解了“C++可变参数模板的展开方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++可变参数模板的展开方式是什么”吧!可变参数模板(variadic templates...
      99+
      2023-06-29
    • JS ES中模板字符串是什么
      这篇文章主要介绍了JS ES中模板字符串是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.模板字符串是什么模板字符串( Template String )是增...
      99+
      2023-06-21
    • c++中类的作用是什么
      在 C++ 中,类是一种用户自定义的数据类型,用于封装数据和方法以实现特定的功能。类的作用在于: 封装数据:类可以将相关的数据和...
      99+
      2023-10-24
      c++
    • C++中类和对象是什么
      这篇文章给大家分享的是有关C++中类和对象是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。类和对象<上>面向对象一直以来都是面向过程编程比如C语言,直到七十年代面向过程编程在开发大型程序时表现出不...
      99+
      2023-06-29
    • C# WPF数据绑定模板化操作的方法是什么
      今天小编给大家分享一下C# WPF数据绑定模板化操作的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。具体...
      99+
      2023-06-26
    • C#中OleDbCommand类的用法是什么
      OleDbCommand类是C#中用于执行SQL语句或存储过程的类。它是System.Data.OleDb命名空间中的一部分,并且是...
      99+
      2023-10-20
      C#
    • C# 中ServiceController类的作用是什么
      今天就跟大家聊聊有关C# 中ServiceController类的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在.net中提供了一些类来显示和控制Windows系统上的服...
      99+
      2023-06-17
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作