Что это значит и как это работает?
if (intVec[v.at(i) - 'a'] == 0)
Предполагая, что v
содержит символы 'a'
, 'b'
, 'c'
и т.
v.at(i) - 'a'
вычитает 'a'
из этих символов.
'a' - 'a' == 0
'b' - 'a' == 1
'c' - 'a' == 2
и так далее.
char c = 'a'; intVec[c] = 1;
(например, char c = 'a'; intVec[c] = 1;
), но если вам char c = 'a'; intVec[c] = 1;
только буквы az, 200+ слотов не используются и потрачены впустую. Карта является еще одним вариантом, но она также имеет накладные расходы.
a
,b
,c
и т. Д. В0
,1
,2
и т. Д.