【C++】fill函数 与 memset函数 的总结与分析

目录

    • memset函数
    • fill函数

memset函数

  • memset函数 按照字节填充,所以一般用来填充char型数组(char型只占一个字节),如果填充int型数组只能填0或者-1,其他的不能
  • 在头文件#include中,使用时应声明。
  • 使用方法:memset(arr,要赋的值,sizeof(arr);
#include
using namespace std;
int s[100];
char a[100];
int main()
{
  memset(s,1,sizeof(s));    //对int型数组s赋值1
  for(int i=0;i<10;i++)
   cout<<s[i]<<" ";
  cout<<endl;
  
  return 0;
}

【C++】fill函数 与 memset函数 的总结与分析_第1张图片

#include
using namespace std;
int s[100];
char a[100];
int main()
{
  // memset(s,1,sizeof(s));
  // for(int i=0;i<10;i++)
  //  cout<
  // cout<
  memset(a,'m',sizeof(a));     //对char型数组a赋值'm'
  for(int i=0;i<10;i++)
   cout<<a[i]<<" ";
  cout<<endl;

  return 0;
}

【C++】fill函数 与 memset函数 的总结与分析_第2张图片

fill函数

  • 按照单元进行赋值
  • 在头文件#include中,使用时应声明。
  • fill函数可以赋任何值
  • 使用方法:fill(arr,arr+n,要赋的值)
  • 除数组外,vector也可以用这种方法赋值:fill(v.begin(),v.end(),要赋的值)

对int型数组赋值:

#include
using namespace std;
int s[100];
int main()
{
  fill(s,s+10,6);
  for(int i=0;i<10;i++)
   cout<<s[i]<<" ";
  cout<<endl;

  return 0;
}

【C++】fill函数 与 memset函数 的总结与分析_第3张图片
对char型数组赋值

#include
using namespace std;
char s[100];
int main()
{
  fill(s,s+10,'m');
  for(int i=0;i<10;i++)
   cout<<s[i]<<" ";
  cout<<endl;

  return 0;
}

【C++】fill函数 与 memset函数 的总结与分析_第4张图片
对string型数组赋值:

#include
using namespace std;
string s[100];
int main()
{
  fill(s,s+10,"abcd");
  for(int i=0;i<10;i++)
   cout<<s[i]<<" ";
  cout<<endl;

  return 0;
}

【C++】fill函数 与 memset函数 的总结与分析_第5张图片
对vector赋值:

#include 
#include 
#include 
using namespace std;
int main()
{
    vector<int> v;
    for(int i=1;i<=6;i++)
     v.push_back(i);
    for(int i=0;i<v.size();i++)
     cout<<v[i]<<" ";
    cout<<endl<<endl;
    fill(v.begin(), v.end(), -1);
    for(int i=0;i<v.size();i++)
     cout<<v[i]<<" ";
     cout<<endl;
    return 0;
}

【C++】fill函数 与 memset函数 的总结与分析_第6张图片



个人认为还是fill函数比较好用,使用面广,操作上也简单,和sort函数很像

你可能感兴趣的:(经验总结,c++,c语言)