Ho cercato nel forum, ma non sono riuscito a trovare le risposte perché dovrebbe essere evitato, solo perché non è un proiettile d'argento. Quindi non penso che questa domanda sia un duplicato.
C'è un motivo valido per cui dovrei disimparare i sistemi ungheresi a cui sono abituato?
Finora vedo i seguenti vantaggi nell'usarlo:
- Denominazione variabile coerente
- Vedi il tipo senza cercare (intellisense è morto / indicizza metà del tempo, quindi è ancora un motivo valido)
- La semantica può ancora essere inserita nella seconda parte del nome
E i seguenti aspetti negativi:
- Infastidisce alcune persone (non ho idea del perché)
- Se il tipo viene modificato, il tipo potrebbe non corrispondere al nome della variabile (non credo che sia un motivo valido, i tipi vengono modificati raramente e hai "rinomina tutto")
Quindi perché:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
è peggio di:
vector<string> cityNames;
wstring city = L"abc";
//more code here
cityNames.push_back(city);//Are we pushing back int on a queue? Float on a stack? Something else?
vectCityNames
essere vectStringCityNames
così tanto per la tua argomentazione coerente, e questa "domanda" è più rantesca di qualsiasi altra cosa, hai la tua decisione, questo dovrebbe essere chiuso.
cityNames.push_back(city)
è abbastanza chiaro. È un elenco di nomi di città e ne stai aggiungendo uno.