我已经尝试了几件事,
std::stringstream m;
m.empty();
m.clear();
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.
我想清除并重用ostringstream(和底层缓冲区),以便我的应用程序不必执行尽可能多的分配.如何将对象重置为初始状态?
我正在创建一个HTML文件,用于创建一个名为Quake的对象的Google地图,其中包含纬度,经度,幅度和深度.另一个名为QuakeData的类是一个创建Quake对象向量的类.
下面的函数获取对象的向量,并获取它们的详细信息(纬度,经度和幅度),然后以这种格式将它们输出到HTML中:
[58.678, -151.887, 'M2.6'],
Run Code Online (Sandbox Code Playgroud)
第一个数字是纬度,第二个是经度,第三个是幅度,显示的格式.
这是我目前拥有的循环,它使用getter提取纬度,经度和幅度:
double mag;
double lat;
double lon;
string complete;
ostringstream out;
vector<Quake>::const_iterator i;
for (i = quakes.begin(); i != quakes.end(); i++)
{
mag = i->getMagnitude();
lat = i->getLatitude();
lon = i->getLongitude();
out << "[" << lat << ", " << lon << ", 'M" << mag << "'],";
complete = out.str();
outfile << complete << endl;
}
Run Code Online (Sandbox Code Playgroud)
但是这会产生如下结果:
[58.678, -151.887, 'M2.6'], (end of line)
[58.678, -151.887, 'M2.6'],[33.92, -117.08, 'M2.9'],(end of line)
[58.678, -151.887, 'M2.6'],[33.92, …Run Code Online (Sandbox Code Playgroud)