c++ 批量初始化数组 fill和fill_n函数的应用

转自c++ 如何批量初始化数组 fill和fill_n函数的应用

std::fill(a+2,a+10,0x3f3f3f3f);///从下标2到下标10  前闭后开 共8个

std::fill_n(a+2,10,0x3f3f3f3f);///从下标2 开始 填充10个

memset(a,0x7f7f7f7f,sizeof(a));

一、 fill和fill_n函数的应用:

fill函数的作用是:将一个区间的元素都赋予val值。

函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的尾迭代器,

替换元素的区间为[first,last),val为将要替换的值。

eg:
             vector <int> V;
             fill(V.begin(),V.end(),val);

二、fill_n函数的作用是:

给你一个起始点,然后再给你一个数值count和val。把从起始点开始依次赋予 count个元素val的值。

  注意: 不能在没有元素的空容器上调用fill_n函数。

三、关于memset()函数:

这个 函数是按字节覆盖,批量初始化内存空间

max_int= 2147483647,也就是:(1<<31)-1

而0x7f7f7f=2139062143

时间: 2024-11-23 06:58:28

c++ 批量初始化数组 fill和fill_n函数的应用的相关文章

【转】c++ 如何批量初始化数组 fill和fill_n函数的应用

http://blog.csdn.net/sunquana/article/details/9153213 一. fill和fill_n函数的应用: fill函数的作用是:将一个区间的元素都赋予val值. 函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的尾迭代器, 替换元素的区间为[first,last),val为将要替换的值. eg:             vector <int> V;             fill(V.begin(

C++初始化问题fill()、memset()函数和图初始化

一.fill()函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件里面 fill函数可以赋任何值,使用方法: fill(arr, arr + n, 要填入的内容) //int数组 #include <cstdio> #include <algorithm> using namespace std; int main() { int arr[10]; fill(arr, arr + 10, 2); return 0; } //vector #include <iostr

fill函数和fill_n函数

fill_n函数的作用是:给你一个起始点,然后再给你一个数值count和val.把从起始点开始依次赋予count个元素val的值. 注意: 不能在没有元素的空容器上调用fill_n函数 列子:     fill函数的作用是:将一个区间的元素都赋予val值.函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的末迭代器,val为将要替换的值. 例题:给你n个数,然后输入一些操作:start,end,paint.表示从start到end都赋予paint的

C语言:实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置

#include<stdio.h> void init(int arr[],int len) {  int i=0;  printf("初始化数组->:\n");  for(i=0;i<len;i++)  {    scanf("%d",&arr[i]);   }  } void reverse(int arr[],int len) {  int i=0;  printf("逆置数组->:\n");  for

JS批量创建数组

JavaScript有许多批量创建数组的方法,为了衡量它们的性能,我分别使用不同的方法创建一个长度为100000的数组,且键和值相等.同时,我定义了下面这个函数用来测量创建数组所耗费的时间: 1 function t(fn) { 2 var start = Date.now(); 3 fn.call(this); 4 var end = Date.now(); 5 return (end - start) + 'ms'; 6 } 以下为常用的几个创建数组的方法以及它们所耗费的时间: 使用join

指针数组,数组指针,指针函数,函数指针,二级指针详解

先看个简单的:char *p,这定义了一个指针,指针指向的数据类型是字符型,char  *(p)定义了一个指针P: char *p[4], 为指针数组,由于[]的优先级高于*,所以p先和[]结合,p[]是一个数组,暂时把p[]看成是q,也就是char *(q),定义了一个指针q,只不过q是一个数组罢了,故定义了一个数组,数组里面的数据是char *的,所以数组里面的数据为指针类型.所以char *p[4]是四个指针,这四个指针组成了一个数组,称为指针数组,既有多个指针组成的数组. char(*p

memset初始化数组的坑

memset函数常被我们用来初始化数组,然而有个坑可能会被我们踩到. 静态数组初始化 一般情形是这样的: #include <cstring> int main() { // 静态数组arr int arr[10]; // 将数组所有元素初始化为0 memset(arr,0,sizeof(arr)); // 遍历输出数组元素 for(int i=0;i<10;++i){ cout << arr[i] << endl; } return 0; } 这样做是正确的,通

ansible实现服务器批量初始化

通过ansible的playbook实现服务器批量初始化工作,会节省大量时间,提高工作效率 ansible模块目录结构 $ tree roles/ roles/ └── base     ├── defaults     ├── files     │   ├── puppet.conf     │   ├── yum65.repo     │   ├── yum67.repo     │   └── yum.repo     ├── handlers     │   └── main.yml

24、输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.  思路:新建一个数组先把原数组中的奇数push进去再把偶数push进去,然后用新数组数据覆盖原数组即可 复杂度O(n),用空间换时间 class Solution { public:     void reOrderArray(vector<int> &array) {         vector<int&