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
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 条评论