- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 
map<string, int> M;
...
M["one"] = 1;
M["two"] = 2;
M["google"] = 1e100;
...
// найдём сумму всех значений --- т.е. всех правых частей 
// пар <string, int>
int r = 0;
tr(M, it) {
   r += it->second; 
   // (*it).first == [string], (*it).second == [int]
}
                                
 Follow us!
{
...
}
Это точно говнокод.
Попробуй, читая код сходу догадаться, что скрываеться за tr, не смотря на определение макроса...
Код должен быть написан так, что-бы пробежался по нему и все понятно буквально сразу и уже можно что-то менять.
Не скомпилиться.
Вроде в map<string, int> M; типы не перепутаны местами...
$EXE='/tmp/tmp.PNNg8UV4IH'
Нажмите ctrl+d для компиляции
#include <map>
int main()
{
map<string, int> M;
M["one"] = 1;
M["two"] = 2;
M["google"] = 1e100;
for (auto i=M.begin();i!=M.end();++i)
cout << i->first << "\t" << i->second << endl;
}
<stdin>: In function ‘int main()’:
<stdin>:17: предупреждение: переполнение при неявном преобразовании константы
Запуск...
google 2147483647
one 1
two 2
Предупреждение -- согласен, нехорошо.
Ворнинги -Wall
Ты, бля, в С видел шаблоны, хуйло?
ну и template