1.vector:

标准库类型vector表示对象的集合,其中所有对象的类型都相同,集合中的每个对象都有一个与之对应的索引,索引用于访问对象。因为vector“容纳着”其他对象,所以它也常被称作容器(container)。

详细介绍:(1)矢量:具有方向性的量。
     (2) 编程语言方面:vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
2.迭代器

迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值。例如,一个数组索引,也可以认为是一种迭代器。

迭代器有各种不同的创建方法。程序可能把迭代器作为一个变量创建。一个STL容器类可能为了使用一个特定类型的数据而创建一个迭代器。作为指针,必须能够使用*操作符类获取数据。你还可以使用其他数学操作符如++。典型的,++操作符用来递增迭代器,以访问容器中的下一个对象。如果迭代器到达了容器中的最后一个元素的后面,则迭代器变成past-the-end值。使用一个past-the-end值得指针来访问对象是非法的,就好像使用NULL或为初始化的指针一样。

下面用一段手打代码来详细说明标准库vector:

 //对象的集合的标准库类型vector
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector <int> ivec1;
vector <int> ivec2(ivec1);//把ivec1拷贝到ivec2;
vector <int> ivec3=ivec1;//同上式意思一样; vector <int> ivec4(,);//元素为10个1;
vector <string> ivec5(,"a");//元素为10个"a"; vector<int> vec;
for(auto i=; i<; i++)
{
vec.push_back(i);//将i压入到vec,使vec[i] = i;
} for(unsigned int i=; i<vec.size(); i++)
{
cout<<"初始化遍历:"<<vec[i]<<endl;//采用下标形式遍历
} vector<int>::iterator it;//it初始化为一个迭代器
for(it = vec.begin(); it!=vec.end(); it++)
{
cout<<"迭代遍历:"<<*it<<endl;//采用迭代器形式遍历
} vec.insert(vec.begin()+,);//vector插入元素,第五个元素插入为0;
for(unsigned int i=; i<vec.size(); i++)
{
cout<<"插入遍历:"<<vec[i]<<endl;
} vec.erase(vec.begin()+);//vector删除元素,删除第三个元素;
for(unsigned int i=; i<vec.size(); i++)
{
cout<<"擦除遍历:"<<vec[i]<<endl;
}
vec.erase(vec.begin()+,vec.begin()+);//vector删除元素,删除从第四个元素到第8个元素,第8个元素不删除 for(vector<int>::iterator it = vec.begin(); it!=vec.end(); it++)
{
cout<<"迭代遍历:"<<*it<<endl;
} system("pause");
return ;
}

结果图:

C++ Primer 第三章 标准库类型vector+迭代器iterator 运算的更多相关文章

  1. C++primer第三章标准库类型

    除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...

  2. C++ Primer 第三章 标准库类型string运算

    1. 标准库类型 string string表示可变长的字符序列,使用string必须首先包含string头文件.如何初始化类的对象是由类本身决定的. int n; string s1;//默认初始化 ...

  3. c++ primer 第三章 标准库类型

    1. string 标准库 1.1初始化 string s1; 默认构造函数s1为空 string s2(s1); 将s2初始化为s1的一个副本 string s3("value" ...

  4. C++ Primer笔记1_转义字符_标准库类型string_标准库类型vector

    1.转义字符 一般有两种方式: \x后紧跟1个或多个十六进制数字.或\后紧跟1.2.3个八进制数字,当中数字部分是字符相应的数值. #include <iostream> using na ...

  5. 标准库类型vector

    标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象.因为vector“容纳着”其他对象,所以它被称为容器. 要想使用vector, ...

  6. C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型

     标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更主要的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:由 ...

  7. C++标准库类型vector及迭代器iterator简介

    Vector是C++标准库类型,称为容器,一个容器中的所有对象必须是同一种类型的.与数组相比,其最大的优点就是动态增长.Vector是一个类模板,并不是数据类型,而vector<int>和 ...

  8. C++ primer读书笔记 chapter3 标准库类型

    除第二章介绍的是C++的基本类型,本章将大致介绍一下C++定义的内容丰富的抽象数据库类型标准库.着重介绍一下sting.vector和bitset. 3.2标准库string类型 1.string类型 ...

  9. 《C++ Primer 4th》读书笔记 第3章-标准库类型

        原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3911534.html

随机推荐

  1. 解决maven项目将model version改成3.0版本问题

    找到项目目录,找到.setting文件 找到org.eclipse.wst.common.project.facet.core.xml文件 修改如下标签 <installed facet=&qu ...

  2. 样式其他与JS脚本语言

    样式其他:display(显示block和隐藏none,不占位置)  visibility(显示visible和隐藏hidden,占位置)  overflow(超出范围 hidden隐藏) 透明(op ...

  3. Python3基础 for循环 遍历并输出一个字符串的列表

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  4. LTMP手动编译安装以及全自动化部署实践(附详细代码)

    大家使用LNMP架构,一般可以理解为Linux Shell为CentOS/RadHat/Fedora/Debian/Ubuntu/等平台安装LNMP(Nginx/MySQL /PHP),LNMPA(N ...

  5. BZOJ 3434 时空穿梭

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3434 题意: 思路: const int mod=10007; const int N=1 ...

  6. Ubuntu 14.04中文输入法的安装

    Ubuntu默认自带的中文输入法是IBUS框架的ibus-pinyin,IBUS-Bopomofo等.对于习惯于搜狗,紫光华宇,谷歌拼音的我们可能有点使用不习惯.下面就是安装常用的IBUS中文输入法. ...

  7. I2C总线信号时序总结

    I2C总线信号时序总结 总线空闲状态  I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态.此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电 ...

  8. OGNL调用静态方法和属性

    ognl的全名是 Object-Graph Navigation Language 表示的是图对象导航语言...我觉得它最厉害的一点是,通过"."来实现对象的导航...下面看他他的 ...

  9. ARM家族大检阅

    首先列举下几个名称: 6410 2440 210 A8 ARM9 ARM11 ARMv7 ARMv6 进行分类: 1.芯片名称: 2440 6410 210 2.ARM核: A8 ARM9 ARM11 ...

  10. JMS【一】--JMS基本概念

    摘要:The Java Message Service (JMS) API is a messaging standard that allows application components bas ...