000
22.08.2007, 12:09 Uhr
banshee
|
C++: |
if(++pTotal[j] && ++pMap[j][ng] > pMax[j]) pMax[j] = pMap[j][ng];
|
pTotal, pMax sind jeweils Zeiger auf int, auf 0 vorinitialisiert. pMap ist eine map<string, int>
Ich frage mich jetzt, tut das Codestück nicht das selbe wie:
C++: |
if(!pMax[j]) pMap[j] = pMap[j][ng]
|
denn ++pTotal[j] && ++pMap[j][ng] wird ja maximal 1, ist also nur dann größer als pMap[j], wenn dieses 0 ist (da vorinitialisiert). Auf der anderen Seite wird ++pTotal[j] && ++pMap[j][ng] mindestens 1, weil auch hier beides auf 0 vorinitialisiert ist und durch den ++-Operator beides auf 1 oder größer gesetzt wird. |