我正在尝试制作一个小程序,该程序处理INI文件,以便在稍后的项目中使用,首先通过减小其大小,一旦加载到内存中。因此,从字符串矢量中删除空元素
其中U电源是包含文件内容
for (unsigned int i = 0; i < vLine.size(); i++)
{
if (!vLine[i].find(';', 0))
{
vLine[i].erase();
}
}
在打印时VLINE的载体,我会留下空间,其中一旦与分号开头的行中存在,如
1.
2. property
3. property
4.
5. property
使用resize()似乎从列表中删除最后一个元素,而不是删除这些空白部分。同样的问题存在于我用erase()删除只包含空格的行。
是否可以在保留vLine的顺序的同时删除这些空元素?
(道歉在此不使用迭代器。)
回复:(道歉在此不使用迭代器) - 为什么不使用迭代器? –
缺乏正确使用的知识。似乎(似乎?)有可能在没有它们的情况下做到这一点。 – JGrey
您可以删除的矢量线条,而不是仅仅删除该字符串的内容(这是什么'VLINE [I] .erase()'呢,不是吗?叫'vLine.erase()'因为从'VECTOR'擦除然后重写文件了。一个惯用的方式做,这是C++的[擦除remove惯用法(http://en.wikipedia.org/wiki/Erase-remove_idiom),虽然你可能需要使用'的std ::的remove_if ''从'使用条件。 –
birryree