Một trong những khả năng là:Cách tốt nhất để trống chuỗi?
somestringstream.str("");
Nhưng tối ưu nhất? Có cách nào để bảo tồn bộ đệm nội bộ chuỗi, do đó các cuộc gọi sau đây < <() sẽ không yêu cầu đặt trước bộ nhớ?
Một trong những khả năng là:Cách tốt nhất để trống chuỗi?
somestringstream.str("");
Nhưng tối ưu nhất? Có cách nào để bảo tồn bộ đệm nội bộ chuỗi, do đó các cuộc gọi sau đây < <() sẽ không yêu cầu đặt trước bộ nhớ?
Tôi đã luôn luôn thực hiện:
s.clear();//clear any bits set
s.str(std::string());
@litb gets into more detail về cách seekp đến sự bắt đầu của dòng kết hợp với std :: kết thúc bạn có thể giữ kích thước phân bổ của bạn.
hoặc chỉ đơn giản là ss.str (""); // trực quan hơn – Milan
@ milan1612: Bạn vẫn cần phải xóa các bit và gửi một char kiểu C * sẽ chậm hơn. –
..và [điều này giải thích] (http://stackoverflow.com/questions/20731/in-c-how-do-you-clear-a-stringstream-variable) tại sao chuỗi 's.str (std :: string()) 'biến thể _could_ hiệu quả hơn. –
Nó đã được thảo luận tại đây: http://stackoverflow.com/questions/624260/how-to-reuse-an-ostringstream –