我正在嘗試製作一個小程序,該程序處理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