我将从this激光探测器读取和写入数据。通信协议涉及所有数据作为ASCII字符序列发送和接收(参见完整规范here)在从传感器读取数据时,我将不得不做大量的工作来解码这些字符的序列。
我知道在处理字符串时使用std :: string通常会更好,但是对于这样的数据,坚持使用基本数组会更好吗?
答案 0 :(得分:3)
std :: string是对“基本数组”进行所有脏工作的抽象。如果你不得不问这个问题,那么是的,你应该使用它。
答案 1 :(得分:0)
我建议您使用std::queue<char>
。或者可能是std::deque<char>
。
我正在提出这个建议,假设这是一个“哑”数据缓冲区,在某种输入FD和解析数据的类/实体之间(实现你链接的规范)。
在这种情况下,您将在设备进行读取时将字符推入队列的一个“侧”,并在解析器将这些字符转换为有意义的度量时从队列的另一侧读取。
如果您发现程序将数据添加到字符串的前面,那么使用std::string
会更有效。每次在字符串的 front 处插入时,类都必须将现有字符串中的所有字符复制到新数据后的空格中。