vector的 emplace 和 insert

    vector<int> first;//Size()==2
    first.push_back(1);
    first.push_back(2);
    //first.insert(2);

    vector<int>second;//Size()==3 + assign??
    second.push_back(3);
    second.push_back(4);
    second.push_back(5);
    vector<int>::iterator it = first.begin();
    //second.assign(it,first.end());
    second.insert(second.end(),first.begin(),first.end());

    printf("first.size=%d\n", first.size());
    printf("second.size=%d\n", second.size());
    for (it = second.begin(); it != second.end(); it++)
        printf("second[]=%d\n", *it);

second 要插入first的内容,太长了。好麻烦。怎么就没有直接 push_back(vector) 的 重构函数呢??

emplace 是C++11 里的 ,感觉跟这个 insert用法是一样的啊。

--------------

真想把 www.cplusplus.com 这个网站给抓下来,然后自己做一个站点。

它没有评论;有些示例 非常不好。

时间: 2025-01-25 06:55:51

vector的 emplace 和 insert的相关文章

emplace与insert的区别(C++11)

转自时习之 C++11中大部分的容器对于添加元素除了传统的 insert 或者 pusb_back/push_front 之外都提供一个新的函数叫做 emplace. 比如如果你想要向 std::vector 的末尾添加一个数据,你可以: std::vector<int> nums; nums.push_back(1); 你也可以使用: std::vector<int> nums; nums.empace_back(1); 避免不必要的临时对象的产生 emplace 最大的作用是避

C/C++中容器vector使用方法&lt;第二弹&gt;

此文总结常用vector操作,是前一篇的续作!只有代码,详细请看代码中的注释.出于反爬虫的目的,你不是在http://blog.csdn.net/zhanh1218上看到的,肯定不是最新最全的. /********************************************************************* * file_name: vector_test.cpp * * Created on: 2014年6月28日 下午3:34:23 * Author: The_T

【C++】朝花夕拾——STL vector

STL之vector篇 N久之前是拿C的数组实现过vector中的一些简单功能,什么深拷贝.增删查找之类的,以为vector的实现也就是这样了,现在想想真是...too young too naive...ORZ ====================我是分割线============================= vector属于顺序容器,它的底层实现就是基于array,所以它可以支持随机访问,但是它比array更有效率,因为它动态分配的内存空间. 动态分配的内存空间: 每当vector

cocos2d::Vector

v3.0 beta加入 定义在"COCOS2DX_ROOT/cocos/base"的"CCVector.h"头文件中. template<class T>class CC_DLL Vector; cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器. cocos2d::Vector<T>中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector. 在Cocos2d-x v3.

C++ Vector 动态数组

Vectors 包含着一系列连续存储的元素,其行为和数组类似.访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度. Constructors 构造函数 Operators 对vector进行赋值或比较 assign() 对Vector中的元素赋值 at() 返回指定位置的元素 back() 返回最末一个元素 begin() 返回第一个元素的迭代器 capacity() 返回vector所能容纳的元

STL—Vector简介

有关C++ STL 中的vector向量的用法(代码示例) 一. 简介 Vector是一个称为向量的顺序容器(不明白顺序容器与关联容器的可以Google). 二. 特点 1. 动态(相当于一个动态数组):2. 可用于存放各种数据结构(内置的,自定义的,当然也可以是vector)(当是vector时注意申明格式eg:vector<vector<Information>>与vector< vector<Information> >,前者错误,后者正确,两个‘&g

备忘: C++中的 vector 容器

在C++ 中使用 vector:容器或叫向量.对用来管理不定长度的数据集或经常变化的数据组,很方便.可以简单的理解他是一种数据组,一种数据类型的集合. vector是同一种类型的对象的集合.它相当于一个动态的数组, 当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 使用vector首先要在程序开头处加上头文件,并使用其命名 : #include <vector> using std::vector; vector的声明与初始化: vector <类型

【转】【STL】vector详解

转自:http://blog.sina.com.cn/s/blog_9f1c0931010180cy.html Vectors   vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector> 构造函数.

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类