我的易错点1

1.strlen()只能用于计算字符型数组的长度,而不能计算整型数组或字符串的长度。

2.fgets()(gets现已被淘汰)可用于输入带空格的字符型数组,而不能输入字符串。fgets用法(即:fgets(数组名,最多读入多少字符,stdin))。fgets(和gets)不能计算字符串的长度。注意:fgets函数会把回车也读进来

3.cin.getline()可用于输入带空格的字符型数组,而不能输入字符串。用法:cin.getline(接收字符串的变量即数组名,接收字符个数)。

4.size()只能用于计算字符串的长度和vector类型的长度

5.strcmp(a, b),只能用于比较两个字符型数组的大小,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止,a < b 返回-1,a == b 返回0,a > b返回1。这里的比较方式是字典序!

6.printf 不能直接输出string类型的字符串,而只能输出char[ ] 数组类型的字符串。若要用printf()输出string类型的字符串,需要调用函数 c_str();c_str()是返回 string 首地址
例如:string a=“china”;,如果要输出a,则需要写成:printf(“%s”,a.c_str());
(建议使用cout输出string类型的字符串)

7.不能用scanf读入string类型的字符串

8.scanf读入字符时不会忽略空格和回车,但cin默认会忽略空格和回车。

9.输入带空格的字符串可以使用getline(cin, 字符串名)。

10.char* name="abc"指的是常量字符串,不可以修改指针,是兼容老的写法;char[] name="abc"是指针,可以修改;

11.unordered_map是C++中的哈希表,可以在任意类型与类型之间做映射。(转自acwing yxc
基本操作
(1).引用头文件(C++11):#include <unordered_map>
(2).定义:unordered_map<int,int>unordered_map<string, double>
(3).插入:例如将(“ABC” -> 5.45) 插入unordered_map<string, double> hash中,hash["ABC"]=5.45
(4).查询:hash["ABC"]会返回5.45
(5).判断key是否存在:hash.count("ABC") != 0hash.find("ABC") != hash.end()
(6).遍历

for (auto &item : hash)
{
    cout << item.first << ' ' << item.second << endl;
}

for (unordered_map<string, double>::iterator it = hash.begin(); it != hash.end(); it ++ )
{
    cout << it->first << ' ' << it->second << endl;
}
__gcd(a,b) //a和b的最大公约数
(a*b)/__gcd(a,b) //a和b的最小公倍数 
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值