📜  用C ++ STL更快地编写代码

📅  最后修改于: 2021-06-26 14:57:14             🧑  作者: Mango

您想知道某个时间编码员在2分钟或更短的时间内编写代码的方式如何?别开玩笑了!尽管此技巧对于ICPC或IOI之类的比赛可能不是很有用。但是最近有一些ICPC等级,其中等级i和等级i + 1仅相隔几分钟。当您可以解决与竞争对手相同数量的问题时,现在取决于编码技巧和……打字速度。

在打字测试.com上尝试进行此打字测试,并按照那里的说明进行操作,以提高打字技巧。

其中许多使用typedef,快捷方式或宏(竞争性程序员通常使用它们)来加快编码时间。在这一小节中,我们列出了以下几个示例。

// C++ STL shortcuts for
// typing codes fast
#include 
  
// Shortcuts for "common" data types in contests
typedef long long ll;
typedef vector vi;
typedef pair ii;
typedef vector vii;
typedef set si;
typedef map msi;
  
// To simplify repetitions/loops, Note: define your
// loop style and stick with it!
#define REP(i, a, b) \
for(int i = int(a); i <= int(b); i++) // a to b, and variable i is local!
#define TRvi(c, it) \
for(vi::iterator it = (c).begin(); it != (c).end(); it++)
#define TRvii(c, it) \
for(vii::iterator it = (c).begin(); it != (c).end(); it++)
#define TRmsi(c, it) \
for(msi::iterator it = (c).begin(); it != (c).end(); it++)
  
#define INF 2000000000 // 2 billion
  
// If you need to recall how to use memset:
#define MEMSET_INF 127 // about 2B
#define MEMSET_HALF_INF 63 // about 1B
  
// memset(dist, MEMSET_INF, sizeof dist); // useful to initialize shortest path distances
// memset(dp_memo, -1, sizeof dp_memo); // useful to initialize DP memoization table
// memset(arr, 0, sizeof arr); // useful to clear array of integers
  
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
  
    // YOUR CODE GOES HERE
  
    return 0;
}

在这里,typedef和#define用于缩短代码,您可以根据需要在主要方法中使用ios_base :: sync_with_stdio(false);。和cin.tie(NULL);用于快速io,这减少了运行代码的时间。

相关文章:

  • 在竞争性编程中高效地编写C / C++代码
  • 如何开始竞争性编程?
  • 编程技巧和窍门|套装1(面向初学者)

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。