accumulate(,)//将一段数字从头到尾累加起来。
#include
using namespace std;
int n,a[105],s;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
s=accumulate(a+1,a+n+1,0);
cout<<s;
return 0;
}
accumulate(,,1,multiplies<int>())//还可以将一段数字从头到尾相乘起来。
#include
using namespace std;
int n,a[105],s;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
s=accumulate(a+1,a+n+1,1,multiplies<int>());
cout<<s;
return 0;
}
next_permutation(,)//数组的全排列,前提是数组从小到大
#include
using namespace std;
int n,a[105],s;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
next_permutation(a+1,a+n+1);
return 0;
}
isdigit(a)//判断是否十进制数,如果 a是一个数字,则该函数返回非零值,否则返回 0。
#include
using namespace std;
int a;
int main(){
cin>>a;
cout<<isdigit(a);
return 0;
}
isalnum(a)//判断是否字母或数字,如果 a是一个数字或一个字母,则该函数返回非零值,否则返回 0。
#include
using namespace std;
int a;
int main(){
cin>>a;
cout<<isalnum(a);
return 0;
}
.append()//字符串尾插其他字符串
#include
using namespace std;
string x,y;
int main(){
cin>>x>>y;
x.append(y);
cout<<x;
return 0;
}
distance(first, last)//用于计算两个迭代器表示的范围内包含元素的个数。该函数会返回[first, last)范围内包含的元素的个数(距离)。
#include
using namespace std;
int n,a[105];
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cout<<distance(a+1,a+n+1);
return 0;
}
copy(first,last, a)//把一个序列从first到last复制到a
注意:copy只负责复制,不负责申请空间,所以复制前必须要有足够的空间。
#include
using namespace std;
int n,a[105],b[105];
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cout<<copy(a+1,a+n+1,b);
for(int i=1;i<=n;i++)
cout<<b[i]<<" ";
return 0;
}
__builtin_popcount(a)//计算a在二进制中“1”的个数
#include
using namespace std;
int a;
int main(){
cin>>a;
cout<<__builtin_popcount(a);
return 0;
}
常量 | 值 |
---|---|
CHAR_MIN | -128 |
CHAR_MAX | 127 |
UCHAR | 255(0xff) |
SHRT_MIN | -32768 |
SHRT_MAX | 32767 |
USHRT_MAX | 65535 (0xffff) |
INT_MIN | -2147483646 |
INT_MAX | 2147483647 |
UINT_MAX | 4294967295 (0xffffffff) |
LONG_MIN | -2147483646 |
LONG_MAX | 2147483647 |
ULONG_MAX | 4294967295 (0xffffffff) |
LLONG_MIN | -9223372036854775806 |
LLONG_MAX | 9223372036854775807 |
ULLONG_MAX | 18446744073709551615 (0xffffffffffffffff) |