向量、字符串还是数组? 我编写了一个C++程序,在终端中创建一种文本编辑器。文本编辑器由单独的行组成。每一行必须表示链接列表的一个成员。我正在遵循一种制作两个类的格式。一个是行的“列表”,另一个是行的类。他们是朋友班。对于每一条新线,都会创建一个线对象并将其添加到链接列表中。“线列表”类通过执行插入线和从链接列表中删除线等操作来管理线对象和链接列表

向量、字符串还是数组? 我编写了一个C++程序,在终端中创建一种文本编辑器。文本编辑器由单独的行组成。每一行必须表示链接列表的一个成员。我正在遵循一种制作两个类的格式。一个是行的“列表”,另一个是行的类。他们是朋友班。对于每一条新线,都会创建一个线对象并将其添加到链接列表中。“线列表”类通过执行插入线和从链接列表中删除线等操作来管理线对象和链接列表,c++,arrays,C++,Arrays,我的问题是,对于每一行,我应该将其存储为字符数组、字符串还是向量 还应注意的是,这些行一旦添加到链接列表中,就不需要进行编辑。可以删除它们,然后插入新行。 只能进行三次操作。在列表中插入整行,在列表末尾添加一行,并从列表中删除现有行。任何给定行的内容在创建并添加到列表后都不会更改 我得到的一些示例输出: 1> The first line 2> The second line 3> 4> And another line 5> One more line 6>

我的问题是,对于每一行,我应该将其存储为字符数组、字符串还是向量

还应注意的是,这些行一旦添加到链接列表中,就不需要进行编辑。可以删除它们,然后插入新行。 只能进行三次操作。在列表中插入整行,在列表末尾添加一行,并从列表中删除现有行。任何给定行的内容在创建并添加到列表后都不会更改

我得到的一些示例输出:

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::字符串。它是固定大小元素的固定大小数组吗?使用std::数组。它是固定大小元素的可变大小数组吗?使用std::vector


在处理文本时,我会选择std::string(或支持unicode的变体),向量/数组操作通常采用统一的元素。

什么最能代表您对实际数据的看法

实际数据是字符串吗?使用std::字符串。它是固定大小元素的固定大小数组吗?使用std::数组。它是固定大小元素的可变大小数组吗?使用std::vector


在处理文本时,我会选择std::string(或支持unicode的变体),向量/数组操作通常采用统一的元素。

在这种情况下,我的第一个选择是
const std::string
。您需要Unicode字符吗?在这种情况下,要么求助于UTF8,要么考虑UTF16与<代码> const STD::WScRe>
顺便说一句:只是因为我经常看到它。不要实现自己的链接列表。首选
std::list
。它通常比
YetanotherLinkedListImplementationIDIDmySelf和MProudof
测试得更好。还考虑使用<代码> STD::向量而不是<代码> STD:List< <代码>,因为在现代计算机内存比CPU慢得多,更可预测的内存访问模式可以否决O-(-)复杂性类。请参阅。

在这种情况下,我的第一个选择是
const std::string
。您需要Unicode字符吗?在这种情况下,要么求助于UTF8,要么考虑UTF16与<代码> const STD::WScRe>
顺便说一句:只是因为我经常看到它。不要实现自己的链接列表。首选
std::list
。它通常比
YetanotherLinkedListImplementationIDIDmySelf和MProudof
测试得更好。还考虑使用<代码> STD::向量而不是<代码> STD:List< <代码>,因为在现代计算机内存比CPU慢得多,更可预测的内存访问模式可以否决O-(-)复杂性类。请参阅。

“我的问题是,对于每一行,我应该将其存储为字符数组、字符串还是向量?”这实际上取决于用法。您希望在生产线中执行的所有可能操作的列表是什么?例如:是否希望能够插入一行的中间?是否要删除行的一部分?还有,你有限制吗?最大行数或最大行长度?请开始准确地告诉你要在哪些行上执行操作。它是一个文本编辑器,所以字符串似乎是合适的(对于简单的实现)。提示:考虑使用<代码> STD::列表使程序工作,然后,如果您的作业要求它编写具有相似接口的自己的可选列表类。(完全相同可能有点困难,因为它可能需要实现
迭代器
s,这不是一个初学者友好的问题)。在这一级别的练习中,我只使用std::string。根本不用担心任何unicode,只要假设它都是ASCII。只要你只做行编辑,你根本不需要麻烦。“我的问题是,对于每一行,我应该将其存储为字符数组、字符串还是向量?"这实际上取决于使用情况。您希望在行中执行的所有可能操作的列表是什么?例如:是否希望能够插入行的中间位置?是否要删除行的一部分?此外,您是否有限制?最大行数或最大行长?请开始确切说明哪一个您想在行上执行的操作。它是文本编辑器,所以字符串似乎是适当的(对于简单的实现)。提示:考虑使用<代码> STD::列表< /COD>使您的程序工作,然后,如果您的作业要求它编写具有相似接口的自己的可选列表类。(完全相同可能有点困难,因为它可能需要实现
迭代器
s,这不是一个初学者友好的问题)。在这个级别的练习中,我只会使用std::string。根本不用担心任何unicode,只要假装它都是ASCII。只要你只做行编辑,你根本不需要麻烦。虽然我不想实现自己的链表,但我不得不这么做,因为这是我正在学习的课程的作业。在这种情况下,作为练习se,当然,实现你自己的链表。虽然我不想实现我自己的链表,但我不得不这样做,因为这是我正在学习的课程的作业。在这种情况下,作为练习,当然,实现你自己的链表。