#c #vector #size
Вопрос:
int main(int argc, char **argv)
{
std::vector<int> vec;
vec.push_back(1);
vec.push_back(12);
const autoamp; cnt = vec.size();
cout<<cnt<<endl;
}
Мой наставник говорит const autoamp;
, что это плохой стиль, не могли бы вы сказать мне, почему?
Комментарии:
1.
const autoamp;
на тривиальных типах часто может быть формой преждевременной оптимизации, когда на самом деле требуется немного больше усилий для создания ссылочного псевдонима, чем для копирования базового тривиального типа. Особенноconst autoamp;
там, где правая часть задания-это значение r, которое все равно исчезает-на что оно ссылается ? Ничего, это функционально простоauto cnt = vec.size();
, но запутано.2. Бывают случаи, когда привязка временного значения к ссылке безопасна. Я избегаю их, потому что не в состоянии их запомнить.