透明意味着“以null结尾的透明元素阵列”

时间:2016-04-02 07:02:36

标签: c++ string data-structures stdstring

快照是类basic_string的源代码的一部分。透明意味着什么在以下评论中。在我看来,透明这个词是多余的,可以摆脱。我是对的吗? enter image description here
我的计算机上的系统是Visual Studio 2010 RTMRel。

1 个答案:

答案 0 :(得分:2)

我认为这里的术语“透明”是指std::basic_string类型的接口管理客户端可直接访问的数组。一个字符串逻辑一个元素数组,这意味着它的函数就像它是一个字符数组一样,特别是std::basic_string类型将字符存储在< em>实际字符数组。例如,客户端可以对字符串中各个字符的地址进行指针运算,并保证其正常工作。

将此与std::deque进行对比,这是逻辑上一个数组,但实际上实际上 可以实现为数组。想要使用std::deque的客户端无法安全地获取std::deque元素的原始地址,并以可保证正确运行的方式对它们执行指针运算。