2222's blog

By 2222, 9 years ago, In Russian,

А почему бы не добавить на Codeforces поддержку C++0x ?

Q: А что это такое??

A: Это C++ из будущего в котором

не нужно ставить пробелы между символами > в темплейтах

vector<vector<pair<int, int>>> v;

можно удобно проинициализировать контейнер

vector<int> a = {1, 2, 3};

не обязательно указывать тип переменной, если она явно проинициализирована

for (auto i = a.begin(); i != a.end(); ++i)
      
cout << *i << endl;

есть лямбда выражения

sort(a.begin(), a.end(), [](int x, int y) { return x > y; });

есть foreach (как в Java)

for (int x : a)
      
cout << x << endl;

есть хеш-таблица

unordered_map<int, string> f = {
      
{1, "one"},
       {2, "two"},
       {3, "three"},
};
for (auto p : f)
       cout << p.first << " -> " << p.second << endl;

и многое другое… но нет BigInteger’а :(

C++0x уже как-то поддерживается в GCC 4.3+, Microsoft C++ 2008+, IBM C++. А приведённые примеры компилятся (и работают!) на GCC 4.6. Для компиляции C++0x программ на GCC нужно указать ключ -std=c++0x.

Возможно, стандарт ещё не доработан и в полной мере его не реализует ни один компилятор, но писать контесты на нём (на свой страх и риск) хочется уже сейчас. Есть ещё желающие?

References

http://en.wikipedia.org/wiki/C++0x

http://www2.research.att.com/~bs/C++0xFAQ.html

http://gcc.gnu.org/projects/cxx0x.html.

Read more »

 
 
 
 
  • Vote: I like it
  • +98
  • Vote: I do not like it