string
4 отговора
312 прегледа
string
Vypros za stl - ako napravia edin goliam string, kak sled tova moga da osvobodia pametta zaemana ot nego - nito s.clear(), nito s = "", nito s.resize; vyrshat rabota. Tova e ne samo pri string ami i pri vector primerno.
Re: string
void clear_string(string &str_data)
{
string empty ;
swap(str_data, empty) ;
}
{
string empty ;
swap(str_data, empty) ;
}
Re: string
10x, vsyshtnost za string si raboteshe i s = "", no za vector ne se seshtam za drug nachin da se napravi osven kakto ti si go kazal - toia neshte i neshte da ia puska taia pamet :)
Re: string
Това е частен случай на така наречения "swap trick". Ето го в оригиналния му вариант, inspired by Scott Meyers:
...
string(str_data).swap(str_data);
...
...
vector<Type>(vect_data).swap(vect_data);
...
...
string(str_data).swap(str_data);
...
...
vector<Type>(vect_data).swap(vect_data);
...
Re: string
Да, добре казано, сега го прочетох и аз.
А това всъщност прави shrink-to-fit. clear-a изглежда също интересно:
vector<Blah> v(10000000, Blah());
vector<Blah>().swap(v);
А това всъщност прави shrink-to-fit. clear-a изглежда също интересно:
vector<Blah> v(10000000, Blah());
vector<Blah>().swap(v);