- 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]
}
{
...
}
Это точно говнокод.
Попробуй, читая код сходу догадаться, что скрываеться за 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