二维向量vector初始化问题(以统计字符串字母题为例)
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初始化问题(以统计字符串字母题为例)相关推荐
- C++ 向量(vector)一维向量的初始化,二维向量的初始化
参考博客:https://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html 1. 向量的简介 向量 vector 是一种对象实体, 能够容纳 ...
- 一维与二维向量vector的使用
在之前一段之间学习相机标定的时候,经常碰到二维向量,查阅了许多博客和相关书籍,书本上只提及到一维向量,二维向量没有相关介绍.网上的博客大多也都写的一知半解,很粗糙,晦涩难懂.今天在几篇好的博文中,又学 ...
- 二维向量vector的使用
定义: //二维向量的定义 vector< vector<int> > b(10, vector<int>(5,0)); //创建一个10*5的int型二维向量bv ...
- 二维数组vector初始化c++
思想: 1.先定义一个二维数组 2.将一个一维数组再放进这个二维数组就构造出了二维数组 /*借用leetcode118-杨辉三角的例题*/ vector< vector<int> & ...
- c++ 一维向量,和二维向量的基本使用
首先是一维向量和二维向量的初始化 //很简单,初始化一个n个元素值为1的向量. //括号可选 vector<int> res(n,1); //相当于二维m*n的数组,不过数组的memset ...
- C++ 二维数组与二维向量的长度
二维数组 int num[2][3]={{1,2,3},{4,5,6}}; int total=sizeof(num)/sizeof(int); //元素总个数 int row=sizeof(num[ ...
- 用vector实现二维向量
如果一个向量的每一个元素是一个向量,则称为二维向量,例如 [cpp] view plain copy vector<vector<int> >vv(3, vector< ...
- c++二维向量初始化
问:比如我建立了一个class叫做card,然后定义下面的一个vector的vector,vector<vector<card> > AIcards:想给它初始化了,因为维数是 ...
- python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算
前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...
- uda 3.C++二维向量
二维向量 接下来,你将使用向量来存储矩阵.就像 Python 使用列表列表来存储矩阵一样,C++ 使用的是向量的向量.用于声明二维向量的语法有点复杂. 假设你正在使用 Python,并且想存储一个 3 ...
最新文章
- ROS系统——重要参考资料
- 2018.09.18 while循环
- Linux:分享50个实用的基础命令,欢迎收藏!
- python bar图_python使用matplotlib绘图 — barChart | 学步园
- SQL基础(3)-索引/触发器/视图操作
- linux系统调用函数printf,使用AT&T语法将整数打印为字符串,并使用Linux系统调用而不是printf...
- 读书:雨果的《巴黎圣母院》
- java连接数据库增删改查公共方法
- fx2n4ad模块中文手册_FX2N-4AD初级教程三菱FX2N-4AD用户指南手册 - 三菱
- head first 设计模式 java_吐血整理:Head First设计模式大全
- 【转】扫盲 同步利器、分布式网盘--BT Sync
- JDBC - 宋红康 - 核心技术
- redis-trib.rb 搭建集群
- [SDIO] SD card 初始化及常用命令解析(附波形,uboot代码)
- 《京东话费充值系统架构演进实践》阅读笔记
- 【Java】高效处理字符串中的标点符号
- bbqsql安装使用踩坑总结
- linux安装cacti
- 计算机图形学 学习笔记(一):概述,直线扫描转换算法:DDA,中点画线算法,Bresenham算法
- python模拟足球比赛_python初体验 —— 模拟体育竞技
热门文章
- 华为matepadpro可以用云电脑吗_放弃台式机,改用华为云电脑,再手机投屏到显示器,这样可行吗?...
- matlab中arccosh,mathematica10下载
- java赋值两个对象数组 clone_Java:类的两个相同对象数组的克隆问题
- mysql instance安装_mysql一机多实例安装记录
- python gdbm_linux下python安装
- java改变this指向_[Java教程]JavaScript中的this指向
- Zepto:基础学习
- FFmpeg学习(9)—— 调整播放速度
- 2019最新论文阅读-BlazeFace:面向移动设备的实时人脸检测
- 从零开始搭二维激光SLAM --- 基于ceres的后端优化的代码实现