熟悉c风格的矩阵定义,那么用纯c++特性vector如何定义一个矩阵呢?

 # include<vector>
# include <iostream>
int main()
{
using namespace std;
vector<vector<int>> array();
const int COL = ;
for ( int i=; i < ; i++)
{
array[i].resize(COL);
}
array[][] = ;
cout << "array[3][3]:" << array[][] << endl;
cout << "array的行数" << array.size() << endl;
cout << "array的列数" << array[].size() << endl;
system("pause");
return ; }

上述代码定义了3行4列的矩阵,主要是正确理解vector<vector<int>>array(3),我们应该如何理解?

回到vector的构造函数,array(3)表示使得向量array保留3个元素。即本质上,array是一个向量,这个向量的大小为3,;而这个向量的每个元素是vector<int>,即这个向量的每个元素是向量。当然每个元素的大小在第六行并未定义,可见array的本质是向量,并不是矩阵,并没有矩阵这个概念,矩阵只是向量的每个子元素也是向量,且恰巧这些子元素的长度也一致而已,仅此而已。

以及对array.size()和array[0].size()的理解。知道了对array的定义,自然我们就知道了array.size()表示的是向量array的长度,array[0].size()为其元素的长度。也就是本质上,我们应该只有向量的概念。

C++中用vector定义矩阵的更多相关文章

  1. vector定义初始化

    头文件 #include<vector> using std::vector; vector<T> v1; vector<T> v2(v1); vector< ...

  2. c++中用vector创建多维数组的初始化方法

    最近调试一个程序,在使用vector声明一个二维数组时出现错误.错误的方法如下所示: std::vector<std::vector<double> > sphereGrid; ...

  3. vector 定义的二维数组的遍历

    之前我们分享了STL的一些容器,再介绍vector中只介绍了二维的vector的定义并没有说二维的vector怎么遍历,那么我们今天就来看下二维的vector怎么遍历 看下面的代码吧. #includ ...

  4. Makefile中用宏定义进行条件编译

    在源代码里面如果这样是定义的: #ifdef   MACRONAME //可选代码 #endif 那在makefile里面 gcc   -D   MACRONAME=MACRODEF 或者 gcc   ...

  5. Numpy 定义矩阵的方法

    import numpy as np #https://www.cnblogs.com/xzcfightingup/p/7598293.html a = np.zeros((2,3),dtype=in ...

  6. 多维的vector定义和初始化

    vector<vector<int> >vv(3, vector<int>(4));//这里,两个“>”间的空格是不可少的 将构造一个二维向量vv,它含有三个 ...

  7. Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D【转】

    本文转载自:http://blog.csdn.net/maopig/article/details/7230311 在源代码里面如果这样是定义的:#ifdef   MACRONAME//可选代码#en ...

  8. c语言中用宏定义一个常量,数字后面带个U, L, F的含义

    转: c语言中数字后面带个U是什么意思?#define F_CPU 12000000U答:U表示该常数用无符号整型方式存储,相当于unsigned int;L表示该常数用长整型方式存储,相当于long ...

  9. Opengl中矩阵和perspective/ortho的相互转换

    Opengl中矩阵和perspective/ortho的相互转换 定义矩阵 Opengl变换需要用四维矩阵.我们来定义这样的矩阵. +BIT祝威+悄悄在此留下版了个权的信息说: 四维向量 首先,我们定 ...

随机推荐

  1. [git]git入门

    usage: git [--version] [--help] [-C <path>] [-c name=value] [--exec-path[=<path>]] [--ht ...

  2. Pycharm学习记录---注释

    在方法下面添加三个双引号然后回车即可添加参数注释

  3. ASP.NET Core使用环境变量

    前言 通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发.测试.以及正式环境等.每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境 ...

  4. 【学习底层原理系列】重读spring源码1-建立基本的认知模型

    开篇闲扯 在工作中,相信很多人都有这种体会,与其修改别人代码,宁愿自己重写. 为什么? 先说为什么愿意自己写: 从0-1的过程,是建立在自己已有认知基础上,去用自己熟悉的方式构建一件作品.也就是说, ...

  5. css常用元素通用样式表

    @charset "utf-8";html,body,a,h1,h2,h3,h4,h5,h6,p,a,b,i,em,s,u,dl,dt,dd,ul,ol,li,strong,spa ...

  6. solr常用操作及集成分词器或cdh集群部署说明

    首先,如果是从http://lucene.apache.org/solr/下载的solr,基本都是自带集成的jetty服务,不需要单独搭建tomcat环境,但是要注意jdk版本,直接解压通过cmd命令 ...

  7. UWP App国际化的两种实现

    开发App,我们都会标配简体中文和英文两种语言.至于你加多少种,取决于你的客户市场.无论如何,英语是必不可少的. UWP平台里面,微软也提供了一种默认的国际化方案,即修改Resources.resw资 ...

  8. Java synchronized 关键字详解

    Java synchronized 关键字详解 前置技能点 进程和线程的概念 线程创建方式 线程的状态状态转换 线程安全的概念 synchronized 关键字的几种用法 修饰非静态成员方法 sync ...

  9. 将jsp页面转化为图片或pdf(一)(qq:1324981084)

    java高级架构师全套vip教学视频,需要的加我qq1324981084 在项目中遇见了将jsp页面转化为pdf的问题,试过itext,但是itext需要标准的html代码,我的页面中的一些属性是it ...

  10. linux中的挂载命令

    一.查询与自动挂载 查询系统中已经挂载的设备,-l会显示卷标名称 mount [-l] oot@izm5e2q95pbpe1hh0kkwoiz tmp]# mount sysfs on /sys ty ...