In generale, è una buona idea memorizzare nella cache un iteratore finale (in particolare i contenitori STL) per motivi di efficienza e velocità? come nel seguente bit di codice:Memorizzazione nella cache dell'iter iter - Buona idea o cattiva idea?
std::vector<int> vint;
const std::vector<int>::const_iterator end = vint.end();
std::vector<int>::iterator it = vint.begin();
while (it != end)
{
....
++it;
}
In quali condizioni il valore finale sarebbe stato invalidato? cancellerebbe dal contenitore causa end per essere invalidato in tutti contenitori STL o solo alcuni?
Prima chiediti, il tuo profiler ti dice che la chiamata a std :: vector :: end() costa una quantità significativa di tempo di elaborazione? –
daramarak