1.对map的操作有了更新的认识!!

map<string,vector<int>> eg;

eg[name].push_back(int);就可以了!!

2.set会默认排序从小到大(字母表顺序)

3.Dev-c++需要设置-std=c++11 让Dev⽀持C++11特性

4.辗转相除法求最大公约数

int gcd(int a, int b) {
 return b == 0 ? a : gcd(b, a % b);
}

5.<cctype> ⾥⾯: isalnum 是字⺟数字; isalpha 是字⺟; isdigit 是数字; isupper 是⼤写字⺟; islower 是⼩写字⺟; isblank 是空格/tab键; isspace 是空格/tab键/回⻋

6.win7直接通过⿏标右击⿊框最上 ⾯的菜单栏选择复制和粘贴,不能ctrl+v/c

7.dev中查看 vector 的值: *(&v[0])@3 ——必须对 v[0] 变换,先取地址再取值, @ 后⾯的数字 3 能让 dev显示数组前3个的值,在⽤这个之前要先在 编译选项-编译器⾥⾯ -std=C++11

8.INT_MAX 、 INT_MIN 、 LLONG_MAX 在 #include 头⽂件⾥⾯,int最⼤值为2147483647,共 10位数字; LLONG_MAX 最⼤值有19位数字,以9开头。所以说储存13位的学号可以⽤ long long int , 输出的时候使⽤ %013lld

9.对 char c[15] 进⾏ sort 排序的 cmp(char a[], char b[]) 函数要这样写: strcmp(a, b) < 0 ,因为 strcmp 返 回的不是 -1 0 1 ⽽是 等于0 ⼩于0 ⼤于0 的某个值, strcmp 在头⽂件 #include ⾥⾯

10.对 vector v 或者 string v 进⾏ sort 排序: sort(v.begin(), v.end(), cmp1); ;对数组a进⾏sort排 序: sort(a, a + n, cmp1);

11.将⼗进制 a 转换为 b 进制数,当 a 不等于 0 时,将 a%b 从后往前倒序保存下来,每次保存后将 a/b 。这样倒序保存的数就是⼗进制 a 在 b 进制下的结果。

12.判断素数

// 判断n是否为素数
bool isprime(int n) {
 if (n <= 1) return false;
 int sqr = int(sqrt(n * 1.0));
 for (int i = 2; i <= sqr; i++)
 if (n % i == 0) return false;
 return true;
}

13.输出语句如果有 is / are、加s / 不加s的区别的话⼀定要当⼼,⽐如 “There is 1 account” 和 “There are 2 accounts” 是不同的输出语句

14.移除字符串s的第⼀个字符: s.earse(s.begin()); 在字符串 s 前⾯增加 n 个 0 : s.insert(0, n, ‘0’);

15.⽤数组 hash[26] 或者 hash[10] 保存某个字⺟或者数字出现的次数/是否曾经出现过;⽤ hash[256] 保 存某个 ASCII码 字符是否出现过, exist[10000] 、 cnt[10000] 同理

16.


0 条评论

发表评论

Avatar placeholder