【问题标题】:Add a vector at the end of another [duplicate]在另一个 [重复] 的末尾添加一个向量
【发布时间】:2014-02-23 10:25:57
【问题描述】:

有没有一种方法可以在另一个向量的末尾添加一个向量?例如,如果我的向量是

std::vector<int> v1(3);
std::vector<int> v2(3);

/* ... initialize vectors ... */
/* ... for example, v1 is 1 2 3 and v2 is 4 5 6 ... */

在不使用循环和push_back的情况下,在v1 末尾添加v2(即获得v1 = 1 2 3 4 5 6)是最聪明的方法吗?

【问题讨论】:

    标签: c++ vector


    【解决方案1】:

    你可以使用insert:

    vec1.insert(vec1.end(), vec2.begin(), vec2.end());
    

    这会将[vec2.begin(),vec2.end())范围内的所有元素(即vec2中的所有元素)添加到vec1,从位置vec1.end()开始(即紧随其后) vec1 的所有元素)。

    希望这会有所帮助!

    【讨论】:

    • 我记得当我第一次了解迭代器时……那真是太棒了。我仍然对系统的灵活性印象深刻。
    • 如果我想将 v1 的第二个和第三个元素添加到 v1,我必须做什么? (即我想要结果 v1 = 1 2 3 2 3)
    • @Wellen 您必须一次手动插入一个元素。您可能想查找有关容器、迭代器和算法的教程,以获取有关如何执行此操作的示例。
    • 这些都是坏消息...没有将迭代器返回到“i”元素的方法吗?
    猜你喜欢
    • 2021-01-23
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2021-09-11
    相关资源
    最近更新 更多