【问题标题】:What's the status of std::vector::data()?std::vector::data() 的状态是什么?
【发布时间】:2011-06-02 09:15:53
【问题描述】:

我刚刚意识到我一直在使用std::vector::data() 与std::string 相似,但一位同事指出它不标准。

显然 Gcc 实现了它,但是查看它的包含文件,我发现了这样的评论:

  // _GLIBCXX_RESOLVE_LIB_DEFECTS
  // DR 464. Suggestion for new member functions in standard containers.
  // data access

我的问题是:

  • 此方法是否已被其他编译器广泛实施?
  • 它是否包含在 C++0x 中?

(我也想知道DR 464 是什么,还有_GLIBCXX_RESOLVE_LIB_DEFECTS 是什么,但我不妨再问一个问题)。

【问题讨论】:

  • 昨天那个也打到我了,但显然 &(vector.front()) 会给你和调用 vector.data() 一样的结果,而且是标准的。
  • 根据我的标准文档副本,在 c++0x data() == &front() 中用于非空向量。

标签: stl standards-compliance stdvector


【解决方案1】:

我无法评论当前的编译器实现,但通过查看 c++0x 标准 n3290.pdf,它在 23.3.6.4 中列出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-17
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多