我应该只使用 std::vector 吗?

codelyoko373

我创建了一个函数,它接收一个大小未知的数组。然后我想简单地调用该函数并传入具有特定大小的数组,然后获取传入数组中的元素数。

所有这些都很好,当然除了获取数组中元素的数量之外,似乎没有一种简单的方法可以计算它。所以我想知道仅使用 std::vector 来代替所有这些是否正确?唯一的问题是感觉有点浪费,因为我不需要 std::vector 提供的附加功能。

所以我想知道这是否值得,还是有另一种“更好”的方式来做我想做的事?

加利克

绝对是的,您应该为此使用std::vector“额外功能”都是免费的。Astd::vector是一个模板类,因此它甚至不会创建您不使用的函数。此外,这些函数是微不足道的和内联的,因此它甚至不会生成函数调用,编译器将剥离所有内容,因此生成的代码几乎与您手动编写内置动态数组相同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在返回std :: vector的函数上使用std :: move吗?

来自分类Dev

我应该在返回std :: vector的函数上使用std :: move吗?

来自分类Dev

我应该使用名称空间std吗?

来自分类Dev

我可以将std :: vector <int> *转换为int *吗?

来自分类Dev

我可以将std :: vector <int> *转换为int *吗?

来自分类Dev

我可以使用std :: vector <std :: vector <T >>表示C ++中的二维数组吗?

来自分类Dev

std::string 不是 std::vector<char> 吗?

来自分类Dev

是否应该使用std :: vector +我自己的大小变量?

来自分类Dev

我可以在运行时将std :: vector转换为std :: tuple吗?

来自分类Dev

我可以将std :: move()元素从std :: vector中移除吗?

来自分类Dev

我可以在std :: move之后重用像std :: vector这样的复杂类吗?

来自分类Dev

我们可以使用参数包作为std :: vector初始化程序吗?

来自分类Dev

我可以使用 std::vector::swap 修改共享向量吗?

来自分类Dev

我应该使用std :: shared指针传递指针吗?

来自分类Dev

我应该将printf与std :: cin混合使用吗?

来自分类Dev

使用std :: vector <std :: shared_ptr <const T>>是反模式吗?

来自分类Dev

建议使用unsigned int代替std :: vector <bool>或std :: bitset吗?

来自分类Dev

使用std :: vector <std :: shared_ptr <const T>>是反模式吗?

来自分类Dev

建议使用unsigned int代替std :: vector <bool>或std :: bitset吗?

来自分类Dev

从函数返回std :: vector是浅表副本吗?

来自分类Dev

std :: vector的地址本身稳定吗?

来自分类Dev

从T *指针构造std :: vector <T>吗?

来自分类Dev

std :: queue我应该缩小以适合吗?

来自分类Dev

是std :: string应该只包含Ascii字符吗?

来自分类Dev

可可绑定,我应该只使用KVO吗?

来自分类Dev

std :: vector <int,std :: allocator <char>>有效吗?

来自分类Dev

我可以在C ++ 11中调用C函数时将std :: vector作为FILE *潜入吗?

来自分类Dev

我可以通过元素的完美转发来列表初始化std :: vector吗?

来自分类Dev

应该始终使用std :: endl吗?

Related 相关文章

  1. 1

    我应该在返回std :: vector的函数上使用std :: move吗?

  2. 2

    我应该在返回std :: vector的函数上使用std :: move吗?

  3. 3

    我应该使用名称空间std吗?

  4. 4

    我可以将std :: vector <int> *转换为int *吗?

  5. 5

    我可以将std :: vector <int> *转换为int *吗?

  6. 6

    我可以使用std :: vector <std :: vector <T >>表示C ++中的二维数组吗?

  7. 7

    std::string 不是 std::vector<char> 吗?

  8. 8

    是否应该使用std :: vector +我自己的大小变量?

  9. 9

    我可以在运行时将std :: vector转换为std :: tuple吗?

  10. 10

    我可以将std :: move()元素从std :: vector中移除吗?

  11. 11

    我可以在std :: move之后重用像std :: vector这样的复杂类吗?

  12. 12

    我们可以使用参数包作为std :: vector初始化程序吗?

  13. 13

    我可以使用 std::vector::swap 修改共享向量吗?

  14. 14

    我应该使用std :: shared指针传递指针吗?

  15. 15

    我应该将printf与std :: cin混合使用吗?

  16. 16

    使用std :: vector <std :: shared_ptr <const T>>是反模式吗?

  17. 17

    建议使用unsigned int代替std :: vector <bool>或std :: bitset吗?

  18. 18

    使用std :: vector <std :: shared_ptr <const T>>是反模式吗?

  19. 19

    建议使用unsigned int代替std :: vector <bool>或std :: bitset吗?

  20. 20

    从函数返回std :: vector是浅表副本吗?

  21. 21

    std :: vector的地址本身稳定吗?

  22. 22

    从T *指针构造std :: vector <T>吗?

  23. 23

    std :: queue我应该缩小以适合吗?

  24. 24

    是std :: string应该只包含Ascii字符吗?

  25. 25

    可可绑定,我应该只使用KVO吗?

  26. 26

    std :: vector <int,std :: allocator <char>>有效吗?

  27. 27

    我可以在C ++ 11中调用C函数时将std :: vector作为FILE *潜入吗?

  28. 28

    我可以通过元素的完美转发来列表初始化std :: vector吗?

  29. 29

    应该始终使用std :: endl吗?

热门标签

归档