1 一维vector

关于一维的vector的知识点,网上教程很多,这里不在详细介绍。本文只提供一个例程,仅供参考。

// test_vector1D.cpp#include <iostream>
#include <string>
#include <vector>using namespace std;void vector_1D()
{//---------------- 一维vector ------------std::vector<int> v1;v1.push_back(10);v1.push_back(20);v1.push_back(30);v1.push_back(40);v1.push_back(50);cout<< v1.front() <<endl<<endl;v1.erase(v1.begin());vector <int>::iterator Iter;for(Iter = v1.begin(); Iter != v1.end(); Iter++)cout << *Iter<< " " ;cout << endl;cout<<v1.size()<<endl<<endl;
}int main()
{vector_1D();return 0;
}

运行结果:

2 多维vector

这里以二维vector为例。

二维vector的定义格式

std::vector<std::vector<int> > array(n);

其中,n表示有多少行。

2.1 例程1:面向过程

在这个例程中,定义二维的vector时需要指定行的大小。

// test_vector2D.cpp#include <iostream>
#include <string>
#include <vector>using namespace std;void vector_2D()
{//---------------- 二维vector ------------std::vector<std::vector<int> > a(2);a[0].push_back(10);a[0].push_back(20);a[1].push_back(10);a[1].push_back(20);a[1].push_back(30);a[1].push_back(40);// 输出二维vectorvector <int>::iterator Iter;printf("二维vector为:\n");for(int i=0;i<2;i++){std::cout<<"共"<<a[i].size()<<"元素:";for(Iter = a[i].begin(); Iter != a[i].end(); Iter++)cout << *Iter<< " " ;cout << endl;}// 清空二维vectorstd::vector<std::vector<int> > emptyMat(2);std::swap(a,emptyMat);printf("\n二维vector为:\n");for(int i=0;i<2;i++){std::cout<<"共"<<a[i].size()<<"元素:";for(Iter = a[i].begin(); Iter != a[i].end(); Iter++)std::cout << *Iter<< " " ;std::cout << std::endl;}
}int main()
{vector_2D();return 0;
}

运行结果:

2.2 例程2:面向对象

在这个例程中,定义一个类TEST。在类中定义一个私有成员变量--二维的vector。

注意:在类文件中定义二维vector变量时,不可以在定义vector时指定其行的大小,否则编译器会报错。vector行的大小需要在类的构造函数中初始化。

//  test.h#ifndef TEST_H
#define TEST_H#include <vector>class TEST
{
public:TEST();void print();
private:std::vector<std::vector<int> > m_a;
};#endif // TEST_H
// test.cpp#include "test.h"
#include <iostream>TEST::TEST()
{m_a.resize(2);m_a[0].push_back(10);m_a[0].push_back(20);m_a[1].push_back(10);m_a[1].push_back(20);m_a[1].push_back(30);m_a[1].push_back(40);
}void TEST::print()
{std::vector <int>::iterator Iter;printf("二维vector为:\n");for(int i=0; i<m_a.size(); i++){std::cout<<"共"<<m_a[i].size()<<"元素:";for(Iter = m_a[i].begin(); Iter != m_a[i].end(); Iter++)std::cout << *Iter<< " " ;std::cout << std::endl;}std::vector<std::vector<int> > emptyMat(2);std::swap(m_a, emptyMat);printf("\n二维vector为:\n");for(int i=0;i<m_a.size();i++){std::cout<<"共"<<m_a[i].size()<<"元素:";for(Iter = m_a[i].begin(); Iter != m_a[i].end(); Iter++)std::cout << *Iter<< " " ;std::cout << std::endl;}
}
// main.cpp#include <iostream>
#include "test.h"using namespace std;int main()
{TEST *test=new TEST();test->print();return 0;
}

运行结果:

【C/C++】多维向量vector相关推荐

  1. 二维向量vector的使用

    定义: //二维向量的定义 vector< vector<int> > b(10, vector<int>(5,0)); //创建一个10*5的int型二维向量bv ...

  2. 一维与二维向量vector的使用

    在之前一段之间学习相机标定的时候,经常碰到二维向量,查阅了许多博客和相关书籍,书本上只提及到一维向量,二维向量没有相关介绍.网上的博客大多也都写的一知半解,很粗糙,晦涩难懂.今天在几篇好的博文中,又学 ...

  3. 3.1 n维向量及其运算

    n维向量 vector    α=(a1,a2,...,an)分量:ai 维数n:分量的个数 零向量0 负向量-α 行向量=列向量的转置 两个向量相等 前提:两个向量维数相等 两个矩阵相等 前提:两个 ...

  4. C++ 二维数组与二维向量的长度

    二维数组 int num[2][3]={{1,2,3},{4,5,6}}; int total=sizeof(num)/sizeof(int); //元素总个数 int row=sizeof(num[ ...

  5. 用vector实现二维向量

    如果一个向量的每一个元素是一个向量,则称为二维向量,例如 [cpp] view plain copy   vector<vector<int> >vv(3, vector< ...

  6. 二维 三维 向量vector 定义,初始化

    1. vector<vector<int>> adjMat(500, vector<int>(0)); adjMat二维向量名 int 数据类型 0是初始化值 2. ...

  7. vector 多维向量定义及其初始化

    using namespace std; 一维向量: vector<int> vector_1D_1;//只定义向量 vector<int> vector_1D_2(n);// ...

  8. vector多维向量初始化等操作

    一维向量: vector<int> vector_1D_1;//只定义向量vector<int> vector_1D_2(n);//定义的同时初始化大小vector<in ...

  9. C++ 向量(vector)一维向量的初始化,二维向量的初始化

    参考博客:https://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html 1. 向量的简介 向量 vector 是一种对象实体, 能够容纳 ...

最新文章

  1. Linux下屏蔽Ctrl+Alt+Delete
  2. Linux Shell 编程学习总结
  3. python 日志分析_python 日志分析统计脚本 | 学步园
  4. Spring DefaultListableBeanFactory
  5. C#实现渐变颜色的Windows窗体控件
  6. python经典一百道习题(转自奶酪博客)
  7. selenium之 chromedriver与chrome版本映射表_NLP实战篇之tf2训练与评估
  8. Spring Boot中扩展XML请求和响应的支持
  9. golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
  10. tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
  11. adc0832工作原理详解_ADC0832内部原理
  12. 批量压缩pdf文件大小,pdf批量压缩步骤
  13. ios swift5 父子控制器
  14. mipi的dsi全称_MIPI DSI协议介绍
  15. 使用Arduino开发板和颜色传感器区分不同颜色
  16. [CodeForces - 447D] D - DZY Loves Modification
  17. 一个人一个微博、一个App一个故事:通过微博草根账号做英语学习App的“爱卡微口语”获晨脉创投天使投资
  18. 传统编译器和DL编译器的调研和理解
  19. 修改人人商城服务器时间,修改收货地址 · 人人商城二次开发常用文档,超详细,微擎开发微擎二次开发【持续更新】 · 看云...
  20. 测试你最关心的QQ好友并爬取空间留言

热门文章

  1. iOS15 切换上架App图标的最新方案
  2. 计算机中的电子科学与技术论文,电子科学与技术优秀毕业论文.doc
  3. 我愿称之为最强归纳—浮点数的规格化与进制数之间的转换
  4. Idea使用“ctrl+/”快捷键进行 行注释 时,在//后自动添加空格
  5. 高斯过程 (Gaussian Process)
  6. LaTeX 注释快捷键
  7. spring的工作原理总结
  8. 虚拟机上网与linux kali2018和windows虚拟机ip地址修改的方法(保姆级图文)
  9. 开年新书热销榜 TOP10
  10. PLSQL查看所连接的ORACLE的版本