C++ vector用法和传参
C++ vector优点和用法
优点:提供了很多现有函数,可以直接调用,空间大小浮动(与静态数组相比优势)
用法:见blog c++详细用法
初始化之前:即获得空间以前不能访问。
vector<int> a;
for(int i=0;i<10;i++)a[i]=i;
访问错误,改为:
vector<int> a(10);
for(int i=0;i<a.size()-1;i++)a[i]=i;
动态操作:
vector<int> a;
for(int i=0;i<10;i++)
a.push_back(i);
高维vector:blog有详细介绍
初始化:
vector<vector<int> > b(10,vector<int>(5));
访问:(和一维vector一样)
for(int i=0;i<b1.size();i++){for(int j=0;j<b1[0].size();j++){b1[i][j]=j-i;cout<<b1[i][j]<<" ";}cout<<endl;}
Vector作为函数调用的一部分使用经验
一共两种方法
1.作为参数传入
void Func(vector<int> &a,..>;
2.作为返回值
vector<int> func(..);
推荐使用第一种,第二种在递归的时候很难使用,必须将定义的vector置于函数外部,否则无效。比如:
vector<int> func(..){vector<int> temp;...func();
}
每次都会创建temp,不好用,得把vector<int> temp;
置于函数外部,全局变量,效果才好。
写两个示例:
vector<int> a;
vector<int> inOrder(Node *root){ //递归下,vector不能这样传入,必须引用传入 if(root==NULL){return a;}a=inOrder(root->LC);a.push_back(root->val);
// cout<<root->val<<" ";a=inOrder(root->RC);return a;
}
void inOrder(Node *root,vector<int> &a){if(root==NULL){return ;}inOrder(root->LC,a);a.push_back(root->val);
// cout<<root->val<<" ";inOrder(root->RC,a);}
vector<int> fun1(int num)
{vector<int> values;for(int j=0;j<num;j++){values.push_back(j);}return values;
}
C++ vector用法和传参相关推荐
- c++ 函数vector传参
vector和数组不一样,数组本身和指针差不多,所以传进去的就是一个指针.但是vector并不如此 vector传参的三种方式: void func1(vector vet); //传送数值 void ...
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
看这边文章时的疑惑是:WebApi中的参数加了[FromBody],不知所以然,就百度了下,看到了以下文章,和大家分享下: 原文链接:http://www.cnblogs.com/landeanfen ...
- 5.springMVC数据回显(就是后台向页面传参的过程)
视频教程地址:http://edu.51cto.com/sd/2cfc2 数据回显其实就是指后台像前台传参的一个过程,这里介绍几种常见的数据回显: 1.springMVC会自动回显的实体类 2.常见的 ...
- c++11 多线程传参和生产者消费者实现
普通函数传参和成员函数传参 #include <iostream> #include <thread> #include <windows.h> void func ...
- WebApi 接口参数不再困惑:传参详解
阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4."怪异"的get请求 二.post请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4 ...
- Angular父子组件通过服务传参
今天在使用ngx-translate做多语言的时候遇到了一个问题,需要在登录页面点击按钮,然后调用父组件中的一个方法. 一开始想到了@input和@output,然而由于并不是单纯的父子组件关系,而是 ...
- Flask mysql 模版传参_Flask渲染Jinja2模板和传参
### Flask渲染Jinja2模板和传参: 1. 如何渲染模板: * 模板放在`templates`文件夹下 * 从`flask`中导入`render_template`函数. * 在视图函数中, ...
- 【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4."怪异"的get请求 二.post请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4 ...
- 《从缺陷中学习C/C++》——6.3 数组传参时的sizeof
本节书摘来自异步社区出版社<从缺陷中学习C/C++>一书中的第6章,第6.3节,作者: 刘新浙 , 刘玲 , 王超 , 李敬娜 , ,更多章节内容可以访问云栖社区"异步社区&qu ...
最新文章
- R构建加权最小二乘回归模型(Weighted Least Squares Regression)
- 面试经典:链表中倒数第k个结点?如何从大量数据中找出高频词?
- 《JavaScript DOM 编程艺术》 读书笔记
- 以其他控制器为目标 在视图中生成输出URL
- Linux——Windows连接CentOS XRDP 错误信息(login failed for display 0)
- linux下模仿用户左键,linux 鼠标左右键互换实现代码
- 2019.03.29 NOIP训练 友好国度(点分治+容斥)
- 使用Docker,Chef和Amazon OpsWorks进行集群范围的Java / Scala应用程序部署
- 软件设计:表达组织中的上下级关系
- 当大数据遇上“智慧园区”会怎样?
- 【Aspose-CAD for Java】DWG如何优雅的转换成PDF文档!
- IDEA反编译java.class文件
- python爬取京东商品信息_python爬虫:爬取京东商品信息
- java 一年有多少周_用java怎么计算当前年有多少周
- ubuntu 19.10 建立拨号连接(PPPoE)
- 两种方法用宏定义写出swap(x,y)
- 棋盘格相机标定图片拍摄方法
- vue 全景图 photo-sphere-viewer 实现
- 2020/09/29 鼠标移入 显示二维码或图片 移出隐藏
- 用友U8如何调整凭证打印模板