bits/stdc++|limits.h|strncasecmp|文件重定向|vector初始化|const在函数名后面| struct_class|内联函数与宏定义|vector的capacity
里面包含了常用头文件,可以在linux的该目录下查看此文件:/usr/include/x86_64-linux-gnu/c++/7/bits/
#include <bits/stdc++.h>
各种数据的范围,常用的有以下几个:
# define INT_MIN (-INT_MAX - 1)
# define INT_MAX 2147483647
/* Minimum and maximum values a `signed long int' can hold. */
# if __WORDSIZE == 64
# define LONG_MAX 9223372036854775807L
# else
# define LONG_MAX 2147483647L
# endif
# define LONG_MIN (-LONG_MAX - 1L)
比较字符串时忽略大小写
相关函数:bcmp, memcmp, strcmp, strcoll, strncmp
表头文件:#include <strings.h>
函数定义:int strncasecmp(const char *s1, const char *s2, size_t n)
函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。
test <datain.txt>dataout.txt
int a[10];
vector v1(begin(a),begin(a)+10);
int a[20][20]={0};
for(auto &row:a){
for(auto col:row){
cout<<col<<" ";
}
cout<<endl;
}
表示该函数是常成员函数. 要访问常量成员只能用常成员函数.
C++ primer::”使用class和struct定义类的唯一区别就是默认的访问权限”;
struct node{
int a;
public:
void getA(){return a;}
void setA(int t){a=t;}
};
class node{
int a;
public:
void getA(){return a;}
void setA(int t){a=t;}
};
//第一个的a默认public,第二个的a默认private.
两者都会将代码在相应位置展开,但是 宏定义会在所有地方将其进行替换,不进行类型检查等操作,只是死板的替换. 内联函数的本质还是函数,会有类型语法的检查,然后在调用的地方进行展开.并且如果函数太复杂,编译器就会将其当成普通函数处理.
在使用push_back()不断地往vector中添加数据时,由于vector刚开始分配的内存并没有这么大,所以随着数据不断增多,可能会重新分配空间,然后把源数据拷贝过去.所以如果知道数据的个数,可以先使用reserve()函数分配足够空间.
ps: ivec.reserve(1e9);
欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/