从C ++中的函数返回向量的最佳方法是什么

我有一个函数返回这样的数组:

vector<string> GetString()
{
   vector<string> s;
   s.push_back("one");
   s.push_back("two");
   s.push_back("three");
   return s;
}

我这样称呼它:

   vector<string> mystrings=GetStrings();

我也可以如下实现:

void GetString(vector<string> & s)
{
   s.push_back("one");
   s.push_back("two");
   s.push_back("three");
}

并以这种方式调用它:

 vector<string> mystrings;
 GetStrings(mystrings);

哪一个更好?

版本一将向量复制到另一向量吗?如果是,那么向量很大就很慢。

迈克·西摩

哪一个更好?

他们做不同的事情。如果您想要一个仅包含这些字符串的向量,请使用第一个;否则,请使用第一个。如果您希望能够将这些字符串附加到现有矢量上,请使用第二个。

如果您想要第一个版本的语义,那么从更容易正确使用和更难于错误使用的意义上说,这“更好”。

版本一将向量复制到另一向量吗?

在现代C ++中,绝对不是:返回局部变量和从临时变量初始化都是通过移动而不是复制来完成的。即使您使用的是C ++ 11之前的编译器,也应删除两个副本。如果您的编译器不支持移动语义或复制省略,那么您确实应该将其丢弃。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从C ++中的函数返回向量的最佳方法是什么

来自分类Dev

从函数C ++返回向量

来自分类Dev

从函数C ++返回向量

来自分类Dev

C++ - 无法从函数返回向量

来自分类Dev

在C中实现函数重载的最佳方法是什么?

来自分类Dev

返回向量c ++的递归

来自分类Dev

如何在C ++中通过引用返回向量

来自分类Dev

C ++-传递向量并返回向量

来自分类Dev

C ++-传递向量并返回向量

来自分类Dev

从Obj-C中的方法返回2个(或更多)变量的最佳方法是什么?

来自分类Dev

C ++接受函数作为模板以及函数返回类型的返回向量

来自分类Dev

从C#中的方法返回值或错误消息的最佳实践是什么?

来自分类Dev

在C ++中采用输入行并将行中的单词添加到向量的最佳方法是什么?

来自分类Dev

麻烦返回向量数组 C++

来自分类Dev

是否可以在C ++中初始化向量并同时返回向量?

来自分类Dev

在C ++中动态分配向量的安全方法是什么

来自分类Dev

在C ++中删除并推回向量的元素

来自分类Dev

在C ++中定义全局数据的最佳方法是什么?

来自分类Dev

在C#PCL中存储设置的最佳方法是什么

来自分类Dev

在C ++中实现回调的最佳方法是什么

来自分类Dev

在C ++中实现分数类型的最佳方法是什么?

来自分类Dev

在C ++ DLL中以可从DLL的任何导出函数中访问的方式构造类对象的最佳方法是什么?

来自分类Dev

从函数调用的多次返回中构建字符串向量的C ++最佳方法

来自分类Dev

从函数调用的多次返回中构建字符串向量的C ++最佳方法

来自分类Dev

在C ++函数中按引用返回的目的是什么?

来自分类Dev

从函数返回向量

来自分类Dev

如何使类中的函数返回向量?

来自分类Dev

C ++ 11,移动返回向量功能样式的语义

来自分类Dev

C ++ 11,移动返回向量功能样式的语义

Related 相关文章

  1. 1

    从C ++中的函数返回向量的最佳方法是什么

  2. 2

    从函数C ++返回向量

  3. 3

    从函数C ++返回向量

  4. 4

    C++ - 无法从函数返回向量

  5. 5

    在C中实现函数重载的最佳方法是什么?

  6. 6

    返回向量c ++的递归

  7. 7

    如何在C ++中通过引用返回向量

  8. 8

    C ++-传递向量并返回向量

  9. 9

    C ++-传递向量并返回向量

  10. 10

    从Obj-C中的方法返回2个(或更多)变量的最佳方法是什么?

  11. 11

    C ++接受函数作为模板以及函数返回类型的返回向量

  12. 12

    从C#中的方法返回值或错误消息的最佳实践是什么?

  13. 13

    在C ++中采用输入行并将行中的单词添加到向量的最佳方法是什么?

  14. 14

    麻烦返回向量数组 C++

  15. 15

    是否可以在C ++中初始化向量并同时返回向量?

  16. 16

    在C ++中动态分配向量的安全方法是什么

  17. 17

    在C ++中删除并推回向量的元素

  18. 18

    在C ++中定义全局数据的最佳方法是什么?

  19. 19

    在C#PCL中存储设置的最佳方法是什么

  20. 20

    在C ++中实现回调的最佳方法是什么

  21. 21

    在C ++中实现分数类型的最佳方法是什么?

  22. 22

    在C ++ DLL中以可从DLL的任何导出函数中访问的方式构造类对象的最佳方法是什么?

  23. 23

    从函数调用的多次返回中构建字符串向量的C ++最佳方法

  24. 24

    从函数调用的多次返回中构建字符串向量的C ++最佳方法

  25. 25

    在C ++函数中按引用返回的目的是什么?

  26. 26

    从函数返回向量

  27. 27

    如何使类中的函数返回向量?

  28. 28

    C ++ 11,移动返回向量功能样式的语义

  29. 29

    C ++ 11,移动返回向量功能样式的语义

热门标签

归档