我負責編寫一個在終端中創建一種文本編輯器的C++程序。文本編輯器由單獨的行組成。每條線都必須代表鏈接列表的成員。我遵循製作兩個課程的格式。一個是一行「列表」,另一個是行的類。他們是朋友班。對於每一個新行,創建一個行對象並將其添加到鏈接列表中。行類的「列表」通過執行諸如插入行和從鏈表中刪除行的操作來管理行對象和鏈接列表。矢量,字符串或數組?
我的問題是,對於每個單獨的行,我應該將它存儲爲字符數組,字符串還是矢量?
還應該注意的是,行被添加到鏈接列表後不需要可編輯。它們可以被刪除並且可以插入一個新行。 只有三種操作是可能的。將整行插入列表中,將一行添加到列表的末尾,並從列表中刪除現有行。創建並添加到列表後,任何給定行的內容都不會被更改。
一些示例輸出,我是給定:
1> The first line
2> The second line
3>
4> And another line
5> One more line
6>
7> what do you try to type here?
8>
9>
10>
11> This is the last line
> I 2 ↵
2> This line should be inserted into line number 2
> L ↵
1> The first line
2> This line should be inserted into line number 2
3> The second line
4>
5> And another line
6> One more line
7>
8> what do you try to type here?
9>
10>
11> This line is boring......
12> This is the last line
> I 16 ↵
16> The line number is big BIG
> L ↵
1> The first line
2> This line should be inserted into line number 2
3> The second line
4>
5> And another line
6> One more line
7>
8> what do you try to type here?
9>
10>
11> This line is boring......
12> This is the last line
13>
14>
15>
16> The line number is big BIG
「我的問題是,對於每一行,我應該將它存儲爲字符數組,字符串還是矢量?」這真的取決於用法。您想要按行執行的所有可能操作的列表是什麼?例如:你是否希望能夠插入一行中間?你想刪除一行的一部分嗎?另外,你有限制嗎?最大線數或最大線長?請開始準確告訴您要在線路上執行哪些操作。 –
這是一個文本編輯器,所以字符串看起來很合適(對於簡單的實現)。 –
提示:考慮讓你的程序使用'std :: list'工作,然後如果你的任務需要它編寫你自己的具有類似接口的替代列表類(完全相同可能有點困難,因爲它可能需要執行'迭代器,這不是一個初學者友好的問)。 –