C++ 容器 与 迭代器 笔记

一,什么是容器?
数组,stack,queue,可以容纳一类资源称之为容器。
向量容器:
数组这种数据结构最大的先天不足就是他受限于一个固定的长度。
在程序中,数组的空间是固定的,不可以多,容易溢出或者出现溢出这种现象。
C++标准库提供的向量(vector)类型解决了先天不足的问题。
就像可以创建各种不同类型的数组一样,我们也可以创建各种不同类型的向量。
std::vector vectorName;
优点:

  • 随着往容器添加元素而无限增大
  • 用size()方法可查出当前长度
  • 可以通过push_back()往其中添加东西
  • 可以通过访问数组元素的语法来访问给定向量的各个元素

实例:

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<std::string> names;

    names.push_back("Q");
    names.push_back("W");
    names.push_back("E");
    names.push_back("R");

    for(int i=0;i<names.size();i++)
    {
        std::cout<< "name["<<i<<"] = "<<names[i]<<"\n";
    }
    return 0;
}

运行结果:

name[0] = Q
name[1] = W
name[2] = E
name[3] = R

迭代器来源?
对容器个元素进行遍历是一种非常常见的任务,所以应该有一种标准的方式来做这件事,所以C++标准库提供的**迭代器(iterator)**就是为了解决上述问题得来。
基本操作:*,++,–, = 等

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<std::string> names;

    names.push_back("Q");
    names.push_back("W");
    names.push_back("E");
    names.push_back("R");

    //用迭代器输出向量
    std::vector<std::string>::iterator iter = names.begin();

    while(iter != names.end()) //iter迭代器是特殊的指针
   {
       std::cout << *iter <<"\n";
       iter++;
   }
    return 0;
}

运行结果:

Q
W
E
R
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值