使用Char Array与std :: string

时间:2014-07-06 18:58:06

标签: c++ arrays string serial-port ascii

我将从this激光探测器读取和写入数据。通信协议涉及所有数据作为ASCII字符序列发送和接收(参见完整规范here)在从传感器读取数据时,我将不得不做大量的工作来解码这些字符的序列。

我知道在处理字符串时使用std :: string通常会更好,但是对于这样的数据,坚持使用基本数组会更好吗?

2 个答案:

答案 0 :(得分:3)

std :: string是对“基本数组”进行所有脏工作的抽象。如果你不得不问这个问题,那么是的,你应该使用它。

答案 1 :(得分:0)

我建议您使用std::queue<char>。或者可能是std::deque<char>

我正在提出这个建议,假设这是一个“哑”数据缓冲区,在某种输入FD和解析数据的类/实体之间(实现你链接的规范)。

在这种情况下,您将在设备进行读取时将字符推入队列的一个“侧”,并在解析器将这些字符转换为有意义的度量时从队列的另一侧读取。

如果您发现程序将数据添加到字符串的前面,那么使用std::string会更有效。每次在字符串的 front 处插入时,类都必须将现有字符串中的所有字符复制到新数据后的空格中。