C++fill()的使用

1.什么是fill()?

当我们想对一个容器的值进行填充时,我们就可以使用fill()函数。

Fill range with value
Assigns val to all the elements in the range [first,last).

2.怎么用fill()?

2.1 使用fill()函数填充普通一维数组
  • 代码如下:
#include <iostream>     // std::cout
#include <algorithm>    // std::fillusing namespace std;int main () {int array[8];                       // myvector: 0 0 0 0 0 0 0 0cout<<"=======begin======="<<"\n"; for (int i = 0;i< 8;i++)cout << ' ' << array[i];cout << '\n'<<'\n';fill (array,array+4,5);   // myvector: 5 5 5 5 0 0 0 0fill (array+3,array+6,8);   // myvector: 5 5 5 8 8 8 0 0cout<<"=======after fill======="<<"\n"; for (int i = 0;i< 8;i++)cout << ' ' << array[i];cout << '\n'<<'\n';return 0;
}
  • 执行结果:
=======begin=======-1 -1 4253733 0 1 0 4254665 0=======after fill=======5 5 5 8 8 8 4254665 0

针对上面的输出,需要注意如下几点:

  • 可以看到这里的输出有4254665这样的值,其原因是:我们没有对数组 array 进行初始化,所以导致出现这个怪异值。但是这不妨碍对fill()的使用验证。
  • 在使用数组 array 时,array代表的就是array[]的起始地址,而array+4代表的就是在起始向后偏移4个位置的元素。 所以:fill (array,array+4,5); 得到的结果就是array[0] = array[1] = array[2] = array[3] = 5。后面的操作同理,不再叙述。
2.2 使用fill()函数填充vector
  • 代码
#include <iostream>     // std::cout
#include <algorithm>    // std::fill
#include <vector>       // std::vectorusing namespace std;int main () {vector<int> myvector (8);                       // myvector: 0 0 0 0 0 0 0 0cout<<"=======begin======="<<"\n"; for (vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)cout << ' ' << *it;cout << '\n'<<'\n';fill (myvector.begin(),myvector.begin()+4,5);   // myvector: 5 5 5 5 0 0 0 0fill (myvector.begin()+3,myvector.end()-2,8);   // myvector: 5 5 5 8 8 8 0 0cout<<"=======after fill======="<<"\n"; for (vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)cout << ' ' << *it;cout << '\n';return 0;
}
  • 执行结果
=======begin=======0 0 0 0 0 0 0 0=======after fill=======5 5 5 8 8 8 0 0

需要注意的地方

  • 因为vector不再是普通的数组了(即使它可以被视作是一个数组),所以我们不需要使用数组首地址的方式,因为vector已经给我们封装好了方法,其初始地址就是vector.begin(),末位地址就是vector.end()。其余同array
2.3 使用fill()函数填充二维数组

如何使用fill()函数填充二维数组呢?

  • 简要代码:
#include<cstdio>
#include<iostream>
using namespace std;int main(){int G[6][4];fill(G[0],G[0]+6*4,520);for(int i = 0;i < 6;i++){for(int j = 0;j < 4;j++){cout <<G[i][j] <<" ";}cout <<"\n";}
}
  • 执行结果:

参考文章

  • http://www.cplusplus.com/reference/algorithm/fill/

C++ 中 fill() 的使用相关推荐

  1. Casperjs中fill提交表单遇到的问题

    1.if you access internet with proxy please add             --ignore-ssl-errors=true --ssl-protocol=a ...

  2. matlab中fill函数的使用方法

    填充的二维多边形 fill 函数创建彩色多边形. 语法 ①fill(X,Y,C) fill(X,Y,C) 根据 X 和 Y 中的数据创建填充的多边形(顶点颜色由 C 指定).C 是一个用作颜色图索引的 ...

  3. python中fill函数_在figu中旋转matplotlib的fill函数

    我在试着做一个三人合谋.其中一个绘图框相对于另一个旋转90度,并垂直于另一个绘图的轴.所以我可以在这个帧中绘制一个直方图图,但是当我使用kde生成数据并使用fill覆盖到{}时,它不会旋转.在impo ...

  4. oracle null 关联,oracle关联查询在ps/sql中正常,但是在C#中fill后值为空

    SQL代码如下 with t1 as( select b.is_import,b.active_flag,b.last_upd,b.row_id,b.dsig_date,b.vicont_code,b ...

  5. unity3d___UGui中如何创建loading...进度条

    http://blog.sina.com.cn/s/blog_e82e8c390102wh2z.html 实现方法:通过Image组件中Image Type属性中Fill Amount,通过代码改变F ...

  6. Matlab中爱心的四种画法(附代码)

    什么Σ(っ°Д°;)っ?居然可以用matlab画出漂亮的爱心图案? 方法一~ % Method 1x = -1:1/400:1; % 给定一个x的范围,指定步长为1/400y1 = 0.6 * abs ...

  7. 基于ARCGIS计算RUSLE中LS因子值

    LS因子针对不同的研究区,计算方法不同,本文参考别人的文献,选择了计算方法: ​ 另外还有很多计算方法 1.首先对DEM数据进行填洼处理:arcgis中fill工具. 之后计算坡度:坡度输出单位直接设 ...

  8. 水体因子在DEM和遥感影像中的提取

    目录 一.介质的区别 二.遥感影像 波段合成 (1)NDWI (2)提取水体并裁剪 (3)计算水域区域的面积. (5)重分类 三.DEM 1.洼地填平 2.水流方向计算 3.水流积聚计算 4.提取河网 ...

  9. python中做为词云轮廓的图片_WordCloud制作词云(2)--以图片为轮廓附制作心形词云❤...

    准备工作: 1. 安装matplotlib以及numpy 2. 文本内容(英文最好,官方不支持中文词分割,第三节涉及到中文支持问题,可跳转查看中文支持,可以直接复制文本,也可以读取文本文件) 3. 一 ...

最新文章

  1. maya批量命名插件_教你玩转MAYA的四十二精华造诣(第一期)
  2. 职称计算机与二级计算机合并,职称计算机考试:excel按数据位置合并
  3. ncbi查找目的基因序列_使用NCBI设计qPCR引物方法
  4. 在source insight 中添加系统字体
  5. ES5和ES6中对于继承的实现方法
  6. 磁铁还能用来爬铁墙?简直惊呆了
  7. spring javafx_Oracle Spring Clean JavaFX应该吗?
  8. 董明珠为什么做不好手机?
  9. 了解java虚拟机mdash;非堆相关参数设置(4)
  10. Promise 必知必会(十道题)
  11. oracle装一半报错要卸掉,OpenSUSE下oracle11gR2的安装卸载
  12. mysql数据库去重
  13. 华为 U2000 技术研究开始
  14. 荣耀安装google谷歌服务框架_荣耀20怎么下载安装谷歌服务框架,GMS框架安装教程...
  15. Eclipse中的Unicode编码如何转为中文?
  16. 11 Mortal Fibonacci Rabbits
  17. 一个简单T9输入法的实现
  18. Sectigo邮件签名证书安装指南
  19. 人工智能方向毕业设计_本科生的毕业论文如果选择人工智能相关方向,需要注意哪些问题...
  20. 李沐-斯坦福《实用机器学习》-02章

热门文章

  1. C sharp(#)中的float,double, Single,Double关键字
  2. 通用vue组件化登录页面
  3. 表格拖拽、树状拖拽的各种方法
  4. 自用 Java 学习(JDBC)
  5. Mac修改密码导致钥匙串
  6. 生产日期当天算一天吗,保质期算当天吗 保质期最后一天算过期吗
  7. #define定义函数
  8. 2023电工杯数学建模A题B题思路模型
  9. Storm Event Imagery Dataset 数据简介
  10. exe4j将jar转exe时出现的ClassNotFoundException解决办法