我正在用C++中的字符串分隔符分割文檔。for循環的最後一個元素
這是一個用於演示問題的最小Python代碼。 LA是由 'x' 的分裂得到(A,B,B)和(c,d)(僅元素X之間,或介於x和文件的結束被記錄)
la = ['a','x','a','b','b','x','c','d']
out = []
tmp = []
inside = False
for a in la:
if a == "x":
if inside:
out.append(tmp)
tmp = []
inside = True
continue
if inside:
tmp.append(a)
out.append(tmp)
for a in out:
print a
有代碼的重複這裏是最後一個元素out.append(tmp)。我如何在循環中移動它? (out.append(tmp)實際上是一些大的代碼,它很容易在不同的地方寫入錯誤)。
P/S:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
int main() {
// your code goes here
stringstream instream("a x b c d x c d");
vector<string> result;
string word, content;
while(getline(instream, word, ' ')) {
if (word == "x") {
result.push_back(content);
content = "";
continue;
}
content += word;
}
return 0;
}
:由於實際的代碼是在C++中,從Python中沒有的特殊功能是允許在解決問題
一個最小的C++代碼調用,我從一個字符串流閱讀
這些與C++有關嗎? – Slava
那麼這不是Python的問題呢?我希望這裏的C++專家希望看到一個C++ [mcve],而不是用Python編碼的。 –
爲什麼在python中給出一個例子,當你的問題在C++中?爲什麼不直接給你用C++嘗試的東西,讓人們用這些代碼來幫助你? – heinst