c++ - 关于C++ vector 和数组的一些考题

标签 c++

大家好,我明天要参加CS考试。只是想弄清楚几个问题。非常感谢,非常感谢您的帮助。

问题 1。 什么是平行 vector ?

  1. 包含要一起处理的数据的相同长度的 vector
  2. 都是相同数据类型的 vector
  3. 相同长度的 vector
  4. 任何并行数据类型的 vector

问题 2。 数组比 vector 更快、更高效。

  1. 正确
  2. 错误

问题 3。 数组可以是函数调用的返回类型。

  1. 正确
  2. 错误

问题 4。 vector 可以是函数调用的返回类型。

  1. 正确
  2. 错误

最佳答案

问题一
“平行 vector ”这个术语是不规范的……(对我来说,这意味着它们的方向的点积是 1!),所以你需要看看你的笔记,看看老师自己的“平行”是什么意思"是。

问题2
这是一个棘手的问题。数组构造(没有初始化的原语)比 vector 构造更快更有效(因为 vector 将初始化它们的内容)。但是,如果您只是通过常量引用传递 vector 并使用下标运算符访问它们的内容,那么效率没有差异(这些下标操作是内联的并且不执行任何边界检查)。最好问问你的老师,因为这可以说不是可以作为真/假问题提出的问题。

问题3
看起来,您的老师真的很喜欢技巧性问题。不,您不能从函数返回固定大小的数组;但是,您可以返回一个数组作为指向堆分配数组第一个元素的指针。很可能你的老师打算让这个问题的答案是错误的,但细微差别很重要。

问题4
真的。这是此列表中唯一的微不足道的问题。

关于c++ - 关于C++ vector 和数组的一些考题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711343/

相关文章:

c++ - 在cpp中将元素分配给 vector

c++ - 如何使用 QModelIndex 访问 QTreeView 中的 childWidgets?

php - 如何在 php 扩展中返回 $this?

iphone - Objective c 将 block 转换为选择器

c++ - 使用 QOpenGLFramebufferObject 时深度测试不起作用

c++ - C++ 概念的通配符为 "accepting anything for this template argument"

c++ - 引用是在内存中创建一个新位置,还是为现有单元格创建一个别名?

c++ - 如何在不引用文档的情况下获得 g++ 编译器的 c++ 默认模式?

c++ - SOCI C++(SQL 包装器) fatal error : database "testDB" does not exist

c++ - 通过命令行编译.cpp程序时出错