fill,fill-n,memset的区别

这里在网上找到了一个归纳的非常好的总结

fill函数,fill与memset函数的区别

  • memset函数
    • 按照字节填充某字符
    • 在头文件<string。h>中
    • 因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为只有char型占一个字节)如果填充int型数组,除了0和-1,其他的不能。因为只有00000000 = 0,-1同理,如果我们把每一位都填充“1”,会导致变成填充入“11111111”
    • 例如

      int a[20];

       memset(a, 0, sizeof a);
  • fill-n 函数

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

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

例题:给你n个数,然后输入一些操作:start,count,paint。表示从start开始连续填充count个数字,paint为填充的数值。

  • fill函数
    • 按照单元赋值,将一个区间的元素都赋同一个值
    • 在头文件<algorithm>里面
    • fill函数可以赋值任何,而且使用方法特别简便
    • fill(arr, arr + n, 要填入的内容)

例如:

      int arr[10];

fill(arr, arr + 10, 2)

  • vector

vector<int> myvector (8,10);        // myvector: 10 10 10 10 10 10 10 10

fill_n (myvector.begin(),4,20);     // myvector: 20 20 20 20 10 10 10 10

fill_n (myvector.begin()+3,3,33);   // myvector: 20 20 20 33 33 33 10 10 

  vector<int> v{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    fill(v.begin(), v.end(), -1);
时间: 2024-10-19 17:56:38

fill,fill-n,memset的区别的相关文章

fill与memset的区别

fill 的头文件是<iostream> 命名空间是std: 在memset(a,0(-1),sizeof(a))全部初值定为0或-1时两者是没有多大区别; 但是在初值为其他值得时候就不同了 fill是把那一块单元赋成指定的值,而memset是按字节填充的:

bzero, memset ,setmem 区别【转】

本文转载自:http://chang6520.blog.163.com/blog/static/112665875201302843359715/ bzero 原型: extern void bzero(void *s, int n); 用法: #include <string.h> 功能:置字节字符串s的前n个字节为零. 说明:bzero无返回值. 举例: // bzero.c #include <syslib.h>#include <string.h>int mai

strcpy、memcpy和memset的区别

strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字符串复制到dest所指的数组中. 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串. 返回指向dest的指针. 例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个'\0'之前)是否超过50位,如超

【C++】fill函数,fill与memset函数的区别

memset函数 按照字节填充某字符 在头文件<cstring>里面 fill函数 按照单元赋值,将一个区间的元素都赋同一个值 在头文件<algorithm>里面 因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为只有char型占一个字节)如果填充int型数组,除了0和-1,其他的不能.因为只有00000000 = 0,-1同理,如果我们把每一位都填充“1”,会导致变成填充入“11111111” 而fill函数可以赋值任何,而且使用方法特别简便

memset 和 fill 的区别

memset:按照字节填充字符 ①头文件:#include <string.h> ②一般用于填充char数组 ③用memset填充int数组的话,只能赋值0,-1,INF(0x3f3f3f3f),否则会出错,直接赋值为-1 fill:为一个区间赋值 ①头文件:#include <algorithm> ②可以任意赋值 原文地址:https://www.cnblogs.com/shiliuxinya/p/12179635.html

【PAT甲级】1003 Emergency (25分)

1003 Emergency (25分) As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between an

hdu4027(线段树)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 线段树功能:区间修改,区间求和. 分析:因为每个数至多开6次平方就变1了,所以对于每一段全为1的线段做lazy标志,若该条线段全为1时,就不用继续往下update,修改复杂度O(6*N),查询O(logN). #pragma comment(linker,"/STACK:102400000,102400000") #include <cstdio> #include &l

HDU5104-BC18简单粗暴的题

/* 今天掉排名快哭了,做题做不对就算了,Hack都错了无数-- 以后做题记得涨经验: 一:自己判定最大的数据量.此题count=1229 二:时间复杂度.开始的超时代码肯定会超时:因为枚举量为count^3.必须超时啊-- 三:交题之前不着急.多写数据给自己测试,尤其是边界和大数据.也方便自己后来的Hack 不要因为想抢一两分钟的时间,而罚分罚时影响心情 四:每次BC的第一题其实看了题解都不难,自己的第一思路也对,注意代码细节处理 五:把自己的初始目标定低:只要求对,不要求时间,更是为了FT准

SSL 2672_题目_spfa

题目描述 小C旅行到了美丽的x市.热爱oi的小C把x市分成了n个建筑物和m条双向街道,每一条街道都有一个通过时间,每个建筑物都有一个观赏值v.接着小C就在想了,如果我从任意一个点出发,经过至少两个点(包括出发点)后回到出发点,那么我能得到的最大平均观赏值是多少.平均观赏值指的是总观赏值/总耗费时间.你可以理解成观赏是不需要耗费时间的,且若多次到达同一建筑物,观赏值只会被计算一次.但小C还要和他的好朋友们开黑打农药,于是他就把这个又简单又无聊的问题交给了准备参加NOIP的你. 思路 用val表示观