c++提供的容器向量vector非常好用,是动态容量的数组。提供很多基本操作,帮助我们应对许多基础算法题。

vector的好处在于可以想数组一样按照索引访问数组某元素,而且提供插入、删除等操作方便我们管理向量内元素。

vecor<int>res;res[3].push_back(5);  //报错  未分配内存,使用索引访问会报错

例题:

给定一字符串,请统计所有出现字母的出现位置(从0开始),并按照字母排序输出。

例如给定字符串为:“Alibaba”

输出为:A:0  a : 4, 6  b : 3, 5 l : 1 i : 2

这个题我们可以用这样一个核心语句完成 “制表”。

res[str[i]].push_back(i);    //res为int型的二向量

遍历字符串,按照对应字母的ascII 码 存入相应的向量中。

但是问题是vector未分配大小,使用索引方式访问会报错,因为并没有分配内存。该如何初始化二维向量vector呢?

vector<vector<int> > res(128, vector<int>(0)); //初始化行数为128
#include<iostream>
#include<vector>
#include<string>
using namespace std;void BulitGrid(vector<vector<int>>& res,string str)
{for (int i = 0; i < str.size(); ++i){res[str[i]].push_back(i);}return;
}void ShowVector(vector<vector<int>>& res)
{for (int i = 0; i < res.size(); ++i){if (res[i].size() != 0){char x = i;cout << x << " : " << res[i][0];for (int j = 1; j < res[i].size(); ++j)cout << ", " << res[i][j];cout << " ";}}
}int main()
{string  str = "Alibaba";vector<vector<int> > res(128, vector<int>(0));BulitGrid(res, str);ShowVector(res);return 0;
}

二维向量vector初始化问题(以统计字符串字母题为例)相关推荐

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

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

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

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

  3. 二维向量vector的使用

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

  4. 二维数组vector初始化c++

    思想: 1.先定义一个二维数组 2.将一个一维数组再放进这个二维数组就构造出了二维数组 /*借用leetcode118-杨辉三角的例题*/ vector< vector<int> & ...

  5. c++ 一维向量,和二维向量的基本使用

    首先是一维向量和二维向量的初始化 //很简单,初始化一个n个元素值为1的向量. //括号可选 vector<int> res(n,1); //相当于二维m*n的数组,不过数组的memset ...

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

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

  7. 用vector实现二维向量

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

  8. c++二维向量初始化

    问:比如我建立了一个class叫做card,然后定义下面的一个vector的vector,vector<vector<card> > AIcards:想给它初始化了,因为维数是 ...

  9. python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算

    前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...

  10. uda 3.C++二维向量

    二维向量 接下来,你将使用向量来存储矩阵.就像 Python 使用列表列表来存储矩阵一样,C++ 使用的是向量的向量.用于声明二维向量的语法有点复杂. 假设你正在使用 Python,并且想存储一个 3 ...

最新文章

  1. ROS系统——重要参考资料
  2. 2018.09.18 while循环
  3. Linux:分享50个实用的基础命令,欢迎收藏!
  4. python bar图_python使用matplotlib绘图 — barChart | 学步园
  5. SQL基础(3)-索引/触发器/视图操作
  6. linux系统调用函数printf,使用AT&T语法将整数打印为字符串,并使用Linux系统调用而不是printf...
  7. 读书:雨果的《巴黎圣母院》
  8. java连接数据库增删改查公共方法
  9. fx2n4ad模块中文手册_FX2N-4AD初级教程三菱FX2N-4AD用户指南手册 - 三菱
  10. head first 设计模式 java_吐血整理:Head First设计模式大全
  11. 【转】扫盲 同步利器、分布式网盘--BT Sync
  12. JDBC - 宋红康 - 核心技术
  13. redis-trib.rb 搭建集群
  14. [SDIO] SD card 初始化及常用命令解析(附波形,uboot代码)
  15. 《京东话费充值系统架构演进实践》阅读笔记
  16. 【Java】高效处理字符串中的标点符号
  17. bbqsql安装使用踩坑总结
  18. linux安装cacti
  19. 计算机图形学 学习笔记(一):概述,直线扫描转换算法:DDA,中点画线算法,Bresenham算法
  20. python模拟足球比赛_python初体验 —— 模拟体育竞技

热门文章

  1. 华为matepadpro可以用云电脑吗_放弃台式机,改用华为云电脑,再手机投屏到显示器,这样可行吗?...
  2. matlab中arccosh,mathematica10下载
  3. java赋值两个对象数组 clone_Java:类的两个相同对象数组的克隆问题
  4. mysql instance安装_mysql一机多实例安装记录
  5. python gdbm_linux下python安装
  6. java改变this指向_[Java教程]JavaScript中的this指向
  7. Zepto:基础学习
  8. FFmpeg学习(9)—— 调整播放速度
  9. 2019最新论文阅读-BlazeFace:面向移动设备的实时人脸检测
  10. 从零开始搭二维激光SLAM --- 基于ceres的后端优化的代码实现