基本知识:

    

1)vector 样子  其实就是一个动态数组:

    

2)vector的基本操作:    

    

3)vector对象的默认构造

    

    对于类  添加到  容器中  要有  拷贝构造函数---》 这个注意

------(1) 利用  v1.size()  来求容器中元素的个数

  

      

 #include<iostream>
#include<vector>
using namespace std;
void hanshu()
{
vector<int> v1;
v1.push_back();
v1.push_back();
v1.push_back();
//这个 size() 就是在求容器的长度
cout<<v1.size()<<endl;
//
}
int main()
{
hanshu();
return ;
}

  

 ---------(2)求这个动态数组的最后一个元素和 第一个元素

    

        

 #include<iostream>
#include<vector>
using namespace std;
void hanshu()
{
vector<int> v1;
v1.push_back();
v1.push_back();
v1.push_back(); //求解第一个元素值
cout<<v1.front()<<endl;
//求解最后一个元素的值
cout<<v1.back()<<endl; }
int main()
{
hanshu();
return ;
}

   ---------(3)修改容器的头部信息

 #include<iostream>
#include<vector>
using namespace std;
void hanshu()
{
vector<int> v1;
v1.push_back();
v1.push_back();
v1.push_back();
//函数返回值作为左值成立,那么是返回一个引用
//修改第一个元素值
v1.front()=; }
int main()
{
hanshu();
return ;
}

----------------------(4)vector赋值

      

  

---------------(5)vector末尾添加或移除数据

      

  --------------(6)存取vector数据

          

    ---(7)vector中的拷贝构造函数,如果没有自己定义  那么就是  浅拷贝,浅拷贝,浅拷贝,浅拷贝,浅拷贝----

      

    主要是由于push_back函数引起的。这个函数会对传递进来的参数进行一次拷贝(调用拷贝构造函数),并将其添加到vector中。如果对象没有拷贝构造函数,编译器会为其生成一个,但是这个编译器生成的拷贝构造函数只是进行了一次浅拷贝,在本例中就是只是复制了str的值,也就是"strend micro"的地址,即拷贝后的对象和原对象的str都是指向同一块内存区域,但是这个拷贝的对象和原对象的析构函数又都会执行,这里就会delete两次。(注意,即使对于一个空类,编译器也会默认生成4个成员函数:默认构造函数,析构函数,拷贝构造函数,赋值函数。)

-------------------(8)迭代器的基本原理

      

----------(9)vector的数据删除

    

 理论知识
 vector.clear(); //移除容器的所有数据
 vec.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。
 vec.erase(pos); //删除pos位置的数据,返回下一个数据的位置。
简单案例:
删除区间内的元素
vecInt是用vector<int>声明的容器,现已包含按顺序的1,,,,9元素。
vector<int>::iterator itBegin=vecInt.begin()+;
vector<int>::iterator itEnd=vecInt.begin()+;
vecInt.erase(itBegin,itEnd);
//此时容器vecInt包含按顺序的1,6,9三个元素。 假设 vecInt 包含1,,,,,,,,,,删除容器中等于3的元素
for(vector<int>::iterator it=vecInt.being(); it!=vecInt.end(); ) //小括号里不需写 ++it
{
if(*it == )
{
it = vecInt.erase(it); //以迭代器为参数,删除元素3,并把数据删除后的下一个元素位置返回给迭代器。
//此时,不执行 ++it;
}
else
{
++it;
}
} //删除vecInt的所有元素
vecInt.clear(); //容器为空

66)vector基础总结的更多相关文章

  1. vector基础

    //STL基础 //容器 //vector #include "iostream" #include "cstdio" #include "vecto ...

  2. vector基础操作

    //vector< T> vec; //构造一个名为vec的储存数据类型为T的动态数组.其中T为需要储存的数据类型 //初始时vec为空 //push_back 末尾添加一个元素 //po ...

  3. vector 基础2

    size  :返回有效元素个数 max_size  :返回 vector 支持的最大元素个数 resize  :改变有效元素的个数 capacity  :返回当前可使用的最大元素内存块数(即存储容量) ...

  4. vector 基础

    http://classfoo.com/ccby/article/jnevK Vector的存储空间是连续的,list不是连续存储的 vector初始化 vector<int>v; //不 ...

  5. day 66 Django基础之jQuery操作cookie

    Django基础之jQuery操作cookie   jquery之cookie操作 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery. ...

  6. day 66 Django基础二之URL路由系统

    Django基础二之URL路由系统   本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...

  7. STL—Vector简介

    有关C++ STL 中的vector向量的用法(代码示例) 一. 简介 Vector是一个称为向量的顺序容器(不明白顺序容器与关联容器的可以Google). 二. 特点 1. 动态(相当于一个动态数组 ...

  8. Android Vector曲折的兼容之路

    Android Vector曲折的兼容之路 两年前写书的时候,就在研究Android L提出的Vector,可研究下来发现,完全不具备兼容性,相信这也是它没有被广泛使用的一个原因,经过Google的不 ...

  9. java数据结构-Vector

    1 Vector基础实现为数组 object[] synchronized线程安全 2 扩容使用  System.arraycopy(original, 0, copy, 0,Math.min(ori ...

随机推荐

  1. 九十八、SAP中ALV事件之十一,查看图片

    一.输入事务代码OAER 二.可以看到相关的图片文件了

  2. v2??? 替换协议

    输入 v2??? 命令,选择修改 v2??? 配置, 然后选择修改传输协议, 可以选择 mKcp_wechat-video .然后重新生成 vmess,放入客户端使用.

  3. M: Mysterious Conch 字符串哈希

    Problem Description小明有一个神奇的海螺,你对海螺说一段字符串,海螺就会返回一个单词,有字符串里面的所有字符组成如告诉海螺“lloeh”海螺则会告诉你“hello”如果有多个单词对应 ...

  4. P1018 锤子剪刀布

    转跳点:

  5. 【Vue中的坑】Vue中的@mouseenter没反应?

    在开发中想实现鼠标悬浮,然后发现事件不由被出发,查找资料,发现并不是所有情况都不能用 下面就简单的说一下如何避免这种情况 如果你的悬浮事件是在 a 标签上,那么你直接使用就会出问题,你需要加一个nat ...

  6. 全局唯一性ID生成方法小结

    全局ID通常要满足分片的一些要求:1 不能有单点故障.2 以时间为序,或者ID里包含时间.这样一是可以少一个索引,二是冷热数据容易分离.3 可以控制ShardingId.比如某一个用户的文章要放在同一 ...

  7. Codeforces 444C 线段树 懒惰标记

    前天晚上的CF比赛div2的E题,很明显一个线段树,当时还在犹豫复杂度的问题,因为他是区间修改和区间查询,肯定是要用到懒惰标记. 然后昨天真的是给这道题跪了,写了好久好久,...我本来是写了个add标 ...

  8. Upgrade to 17.1 from 17.0 problem:UnicodeEncodeError: 'ascii' codec can't encode character '\xc4' in position 50: ordinal not in range(128)

    最近 gentoo 从 17.0 更新到 17.1, 需要手动进行升级配置,使用 unsymlink-lib -p --finish 这一步的时候报错,报错如下: /usr/lib/python-ex ...

  9. NCRE的JAVA二级考试大纲

    全国计算机等级考试二级 Java 语言 程序设计考试大纲(2018 年版) 基本要求 1. 掌握 Java 语言的特点.实现机制和体系结构. 2. 掌握 Java 语言中面向对象的特性. 3. 掌握 ...

  10. python刷LeetCode:9. 回文数

    难度等级:简单 题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: fa ...