Референция срещу пойнтер
Здравейте!
За първа задача джъджа дава разлика в паметта и скоростта в полза на пойнтера в следните случаи:
//variant 1 use function by pointer
//Memory: 1.86 MB
//Time: 0.000 s
std::string minBy(std::vector<std::string> &values,
bool (*whichFn)(const std::string& , const std::string& ))
{
sort(values.begin(), values.end(), whichFn);
return values[0];
}
//variant 2 use function by reference
//Memory: 1.88 MB
//Time: 0.015 s
std::string minBy(std::vector<std::string> &values,
bool (&whichFn)(const std::string& , const std::string& ))
{
sort(values.begin(), values.end(), whichFn);
return values[0];
}
Има ли наистина разлика?
Аз се изненадах не толкова за разликата в скоростта, но заради паметта. Не знам как да си напиша тестове.
Пробвам това, но винаги дава различен резултат