我的任务是编写一个c ++程序,在终端中创建一种文本编辑器。文本编辑器由各行组成。每条单独的行必须代表链表的成员。我遵循了制作两个课程的格式。一个是"列表"行和另一行是行的类。他们是朋友班。对于每个新行,都会创建一个行对象并将其添加到链接列表中。 "列表" lines类通过执行插入行和从链接列表中删除行等操作来管理行对象和链接列表。
我的问题是,对于每一行,我应该将它存储为字符数组,字符串还是向量?
还应注意,一旦将这些行添加到链接列表中,就无需编辑。可以删除它们并插入新行。 只能进行三次操作。将整行插入列表,在列表末尾添加一行,并从列表中删除现有行。任何给定行的内容在创建并添加到列表后都不会更改。
我给出了一些示例输出:
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
答案 0 :(得分:5)
最能代表您对实际数据的看法。
实际数据是字符串吗?使用std :: string。它是固定大小的固定大小的数组吗?使用std :: array。它是固定大小元素的可变大小数组吗?使用std :: vector。
我会选择std :: string(或者它的unicode支持变体),因为你正在处理文本,而vector / array操作通常假设是统一的元素。
答案 1 :(得分:1)
在这种情况下,我的第一选择是<activity android:name="CalActivity" android:configChanges="orientation|keyboardHidden"/>
。你需要Unicode字符吗?在这种情况下,要么使用UTF8,要么考虑使用const std::string
的UTF16。
const std::wstring
。它通常比std::list
更好地测试。还要考虑使用YetAnotherLinkedListImplementationIDidMyselfAndAmProudOf
而不是std::vector
,因为在现代计算机中,内存比CPU慢得多,因此更可预测的内存访问模式可以否决O() - 复杂性类。请参阅Bjarne Stroustrups talk at GoingNative 2012。