C++vector的用法你都知道嘛

目录
  • C++vector用法整理
    • 1.头文件
    • 2.vector初始化
    • 3.vector对象的重要操作
      • 1.赋值(assign)
      • 2.返回元素值
      • 3.清空、判断是否为空
      • 4.删除
      • 5.插入
      • 6.返回vector的现存元素个数、共可容纳个数
      • 7.调整元素个数(这个好牛)
      • 8.整体性交换
      • 9.向量的比较操作
      • 10.重要算法
    • 4.一些误区
  • 总结

C++vector 用法整理

1.头文件

#include<iostream>//容器
#include<vector> //算法
#include<iterator>//迭代器

一个代码示例

#include<iostream>//容器
#include<vector> //算法
#include<iterator>//迭代器
using namespace std;
int main(int argc, const char* argv[])
{
    const int SIZE = 6;
    int array[SIZE] = {1,2,3,4,5,6};
    vector<int> v(array,array+SIZE);
    cout<<"First element:"<<v.front()<<"\n Last element"<<v.back()<<endl;

}

2.vector初始化

定义十个整形元素的向量(其中初值不确定)

vector<int> a(10);

每个元素初值为1;

vector<int> a(10,1);

类似于深拷贝的整体赋值方式

vector<char> a(b);

vector<char> a(b.begin(),b.begin+3);//(a的值为0~2个元素)

用数组赋初值(和上面一个有点相似)

vector<int> a(b, b+7);

3.vector对象的重要操作

1.赋值(assign)

a.assign(b.begin(),b.begin()+3); //注意!此处,将b 0~2个元素构成的向量赋值给a!与上面不同!

a.assign(4,2);//  与vector<int> a(10,1);结果相同

2.返回元素值

//返回最后一个元素
a.back();
//返回第一个元素
a.front();
//数组返回式
 a[i];

3.清空、判断是否为空

a.clear();

a.empty();

4.删除

//删除最后一个元素
a.pop_back();
//删除一块元素
a.erase(a.begin(),a.begin()+3);

5.插入

//在最后一个向量后插入一个元素
a.push_back(5);
// 插入一段元素(从第一个元素算起,插入3个数,值都为5)
a.insert(a.begin(), 3, 5);
//用数组插入一段元素(在a的第一个元素的位置插入b的第3个元素到第5个元素)
a.insert(a.begin(), b+1,b+6);

//从现有向量中选择元素向向量中添加
int a[6] = {1, 2, 3, 4, 5, 6};
vector<int> b;
wector<int> c(a, a+4);
for(vector<int>::iterator it = c.begin(); it<c.end():it++)
{
    b.push_back(*it);
}

//从文件读取元素向向量中添加
ifstream in("data.txt");
vector<int> a;
for(int i;in>>i)
{
    a.push_back(i);
}

6.返回vector的现存元素个数、共可容纳个数

a.size();

a.c apacity();

7.调整元素个数(这个好牛)

//将元素个数调整至10,多删少补,补的值随机
a.resize(10);
//将元素个数调整至10,多删少补,补的值为2
a.resize(10,2);
//大容量扩充(不补充值)
a.reserve(100);

8.整体性交换

a.swap(b);

9.向量的比较操作

a==b;
//还有 !=  >=  <=  >  <

10.重要算法

//从小到大排列
sort(a.begin(), a.end());
//倒置但不排列
 reverse(a.begin(),a.end());
//元素复制
copy(a.begin(),a.end(),b.begin());
//从某一区块中查找元素值,返回位置
find(a.begin(),a.end(),10);

4.一些误区

下标只能获取已存在的元素,不能进行赋值操作

//错误示例
vector<int> a;
for(int i = 0;i<10;i++)
    a[i] = i;

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • C++中stack、queue、vector的用法详解

    一.栈(stack) 引入头文件 #include<stack> 常用的方法 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素 size() 返回栈中元素数目 top() 返回栈顶元素 3.实例代码 #include<iostream> #include<stack> using namespace std; int main(){ //创建栈 s stack<int> s; //将元素压入栈 for(int i=0;

  • c++ 中vector 常见用法

    目录 1.c++ 中 vector 2.初始化 3.常用函数 1.c++ 中 vector vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片区域所能容纳的元素个数. capacity会随着你的使用vector内置函数而动态变化. 通常capacity会比size大,如果往vector中push_back数据,这样就不用重新申请内存和拷贝元素到新内存区域了,便于节省时间. vector 之间可以之间赋值

  • C++中vector容器的用法

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begi

  • c++容器list、vector、map、set区别与用法详解

    c++容器list.vector.map.set区别 list 封装链表,以链表形式实现,不支持[]运算符. 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向). 新添加的元素,list可以任意加入. vector 封装数组,使用连续内存存储,支持[]运算符. 对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快 新添加的元素,vector有一套算法. map 采用平衡检索二叉树:红黑树 存储结构为键值对<key,value> set 采用

  • 带你了解C++中vector的用法

    目录 一,什么是vector 二,容器特性 1,顺序序列 2,动态数组 3,能够感知内存分配器 三,常用基本函数实现 四,基本用法 1,头文件 2,创建和使用 3,算法 五,vector占用内存空间问题 1,vector内存自增长 2,vector内存释放 六,疑问解答 1,vector与数组的区别 2,C++11关于vector的新增特性有: 总结 一,什么是vector vector(向量)是一个封装了动态大小数组的顺序容器.能够存放各种类型的对象(注:一个容器中所有对象必须是同一种类型的)

  • C++ vector数组用法及解析

    目录 一.什么是vector数组 二.vector的基本操作 vector数组的初始化 向vector中插入元素 删除元素 遍历数组 利用vector创建动态二维数组 一.什么是vector数组 vector是向量类型 vector数组是可以存放任意数据类型的动态数组 和普通数组类似,可以通过下标对数组中的元素进行引用 二.vector的基本操作 使用vector数组要在头文件中加 #include<vector> vector数组的声明 vector<int> vec;//声明一

  • C++vector的用法你都知道嘛

    目录 C++vector用法整理 1.头文件 2.vector初始化 3.vector对象的重要操作 1.赋值(assign) 2.返回元素值 3.清空.判断是否为空 4.删除 5.插入 6.返回vector的现存元素个数.共可容纳个数 7.调整元素个数(这个好牛) 8.整体性交换 9.向量的比较操作 10.重要算法 4.一些误区 总结 C++vector 用法整理 1.头文件 #include<iostream>//容器 #include<vector> //算法 #includ

  • C++中vector的用法实例解析

    本文实例展示了C++中的vector用法,分享给大家供大家参考.具体如下: 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小. 例如: // c语言风格 int myHouse[100] ; // 采用vector vector<int> vecMyHouse(100); 当如上定义后,vecMyHouse

  • Django分页器的用法你都了解吗

    Django是一个大而全的框架.需要明确的是,传参进行分页获取分页后的数据,一般都是通过向服务器发送get请求的方式实现的,在向后端服务发送查看数据的同时可以携带一个或多个参数并发送get请求来实现分页查看功能 前面总结过drf框架中分页器的使用,本文主要介绍在利用Django开发MVT模型项目时分页器的使用 1.准备基础数据 设计表模型 为了体现分页的效果,需要先创建一个表并准备较多数据,模型如下 from django.db import models # Create your model

  • C++ vector的用法小结

    c++ vector用法 C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板. 标准库vector类型使用需要的头文件:#include <vector>.vector 是一个类模板.不是一种数据类型,vector<int>是一种数据类型.Vector的存储空间是连续的,list不是连续存储的. 一. 定义和初始化 vector< typeName > v1

  • 迅速掌握Java容器中常用的ArrayList类与Vector类用法

    ArrayList类 List集合的实例化: List<String> l = new ArrayList<String>(); //使用ArrayList类实例化List集合 List<String> l2 = new LinkedList<String>(); //使用LinkedList类实例化List集合 ArrayList常用方法: add(int index, Object obj); addAll(int, Collection coll);

  • Java编程中的vector类用法学习笔记

    java.util.vector提供了向量类(vector)以实现类似动态数组的功能.在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量.比如在c,c++中所谓的"动态数组"一般都由指针来实现.为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一.事实上,灵活使用数组也可以完成向量类的功能,但向量类中提供大量的方法大大方便了用户的使用. 创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先

随机推荐