c++ - 优化 vector 赋值 c++

标签 c++ algorithm vector

我有一个返回 vector 的函数。我们将其命名为 v。我在一个函数中使用了 v.begin()v.end()。我怎样才能使用 .begin().end() 而不创建新的 vector v2 来存储先前的 vector v 这样我就可以访问方法?

我的意思是:

std::vector<int> merge(...) {
    ...
    return v;
}
void mergeSort(...) {
    ...
    std::vector<int> v2;
    v2 = merge(...);
    I_need_this = v2.begin();
    And_I_really_need_this_too = v2.end();
    ...
}

最佳答案

优化赋值的最好方法是根本不赋值,而是使用初始化

std::vector<int> v2 = merge(...);

几乎可以肯定,编译器会直接将 v 创建到 v2 中,而不会进行任何复制。

关于c++ - 优化 vector 赋值 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35107839/

相关文章:

c++ - 三维数组中的 C/C++ DWORD 到 BYTE 以及 BYTE 到 DWORD 转换

c++ - 在源文件中包含额外的调试信息,以便在 Code::Blocks 中使用 gdb 进行调试

android - 质量检查系统词库

Javascript:冒泡排序

c++ - 为什么这个 C++ 代码片段段错误?

c++ - 二进制余弦系数

algorithm - 邻接表表示的时间复杂度?

loops - 展开向量中的(开始,结束)对

c++ - 在 C++ 中创建动态 vector

java - 在java中计算 double vector 的平均值