简介

STL容器

见 站内:cpp STL详解

算法

技巧

输入输出加速代码

1
ios::sync_with_stdio(false); //输入输出加速

作用

  • 取消同步:
    默认情况下,C++ 的标准输入输出流(cin 和 cout)与 C 的标准输入输出流(stdin 和 stdout)是同步的。这意味着每次使用 cin 和 cout 时,都会确保两者的状态一致,这样会导致性能损失。
    调用 ios::sync_with_stdio(false); 可以取消这种同步,使得 C++ 的输入输出流更快,因为不再需要每次都保持同步。
  • 提高性能:
    在处理大量输入输出时,取消同步后,使用 cin 和 cout 的性能会显著提高。这在竞争性编程或需要快速处理大量数据的场合中非常有用。

字符串读取空白、回车问题

  1. 方法1
1
2
3
//使用下面代码可以让字符串s忽略掉换行、空白
string s;
getline(cin >> ws, s);
  1. 方法2
1
2
3
4
5
//使用下面代码可以让字符串s不读取掉换行
//使用cin.get()吃掉换行
string s;
cin.get(); //读取换行
getline(cin, s);

cin.getline()与getline()的区别

cin.getline要使用字符数组做参数,getline要使用字符串做参数

cin.getline(字符数组,读取的长度);

getline(cin,字符串名)

1
2
3
4
5
6
7
8
   char name[20];
string s;
cin.getline(name,20); //OK
getline(cin,name); //ERROR

cin.getline(s,20); //ERROR
getline(cin,s); //OK