C++ 使用数组 初始化 Vector

vector 的初始化常常需要一个元素一个元素的 push_back 到 vector 之中,这样赋值很琐碎也为测试用例的完善带来了很大的负担。为了不用一个元素与个元素的 push_back 到 vector 之中,本文拟采用指针赋值的方式,一次性操作以实现数组对 vector 的初始化,相见代码如下。

#include <vector>
#include <iostream>

using namespace std; 

int main()
{
    int int_array[] = {1, 2, 3, 4};
    for(int i = 0; i < 4; i++) {
        cout << int_array[i];
    }
    cout << endl;

    std::vector<int> vec_int(int_array, int_array+4);

    for(int i = 0; i < 4; i++) {
        cout << int_array[i];
    }
	cout << endl;
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-05 02:13:52

C++ 使用数组 初始化 Vector的相关文章

用vector容器代替数组 ——使用数组初始化vector对象

在C++中,我们不能用数组直接初始化另一数组,而只能创建新的数组,然后显式的把原数组的元素逐个复制给新的数组. 按照C语言中的做法: const size_t arry_size=6; int int_arry[arry_size]={0,1,2,3,4,5}; int int_arry2[arry_size]; for(size_t ix=0;ix<arry_size;++i)        int_arry2[ix]=int_arry[i]; 而使用数组初始化vector对象,可以直接利用一

整型数组与vector对象之间的相互初始化

#include<iostream> #include<vector> #include<string> using namespace std; int main() { vector<int>::size_type i=0; int arr[10]={0,1,2,3,4,5,6,7,8,9}; //使用整型数组初始化一个vector对象 vector<int> vec(begin(arr),end(arr)); for(auto v:vec)

C++数组和vector容器的比较以及浅析

作为一个C语言程序猿来说,数组是非常重要的,也是必不可少的一种数据组织和存储方式.在C++中却很少使用数组.从根本说主要有以下几个方面: 数据存储方式: (1)数组的内存地址是连续的,也就是说如果你要申请的内存地址必须是连在一起的.数组为每一个元素申请的空间大小相同的,连续的存储空间.对于空间的申请和控制需要我们自己控制. (2)vector也是连续的存储空间.对于空间的申请和控制都由标准库帮我们管理. 空间利用率: (1)数组在定义的时候已经指定了空间的大小,不能改变,除非你新申请一个空间来存

C语言的数组初始化

这是非常基础的东西,但基础的重要性不言而喻,我敢肯定这个知识点我肯定以前了解过,但如今,我不敢确定,由此可见纪录的重要性,这世界没有什么捷径,找对方向,然后不停反复.所以从今天開始,我会比較具体的纪录这些比較小的知识点,事实上还是有不少有意思的地方的. 写这篇文章的起因在于<<COM技术内幕>>第七章新东西太多,看的我目不暇接,所以在网上找了些样例看,当中就有一个样例中出现了这种语句: ...wchar_t wname[128]=...{0};char cname[256]=...

混编用到 C++中数组和vector 复习下大学课本

本文基于邓俊辉编著<数据结构(C++语言版)(第3版)>.<C++ Primer(第5版)>以及网上的相关博文而写,博主水平有限,若有不妥处,欢迎指出. 一.数组 C++中数组是一种内置的数据类型. 数组是存放类型相同的对象的容器,数组的大小确定不变,不能随意向数组中增加元素. 1.定义和初始化内置数组 (1)数组的大小不变,(a[d],d为数组的维度),数组的维度必须是一个常量表达式.定义数组的时,必须指定数组的类型和大小. (2)初始化时,允许不指明数组的维度,不指明维度,则编

Java之路(四)数组初始化

本文主要讲数组的初始化方法.可变参数列表以及可变参数列表对函数重载的影响. 数组初始化 定义数组的方式: int[] arr1; 或  int arr1[]; 数组初始化 通过上边的定义,我们只是得到了一个数组的引用.这时已经为引用分配了存储空间,但是还没有给数组对象本身分配任何空间.想要给数组对象分配存储空间,必须使用初始化表达式. a.在数组创建的地方进行初始化,如: int[] arr1 = {1,2,3,4,5}; 这种方式等价于使用new来进行存储空间分配. b.给数组的引用赋值,如:

C++中数组初始化

#include<iostream>using std::cout;using std::endl;int arr1[5];int arr2[5] = {1,3,5};int main(){int arr3[5];int arr4[5] = {2,4,6};int *pi1 = new int[5];int *pi2 = new int[5]();for(int i = 0; i != 5; i++)   cout << arr1[i] << " "

编程题:实现一维数组初始化的几种形式。

#include<stdio.h> void main() { int n; int a[5]={0,1,2,3,4}; int b[5]={1,2}; float c[]={1,2,3,4,5}; for(n=0;n<5;n++) printf("%5d",a[n]); printf("\n"); for(n=0;n<5;n++) printf("%5d",b[n]); printf("\n"); f

一个数组初始化的问题

曾经看到过一个同事写的代码,将一个数组初始化,将它全部初始化为一个指定的值,他采用的是: 1 char a[10]; 2 for(i=0; i<10; i++) 3 { 4 a[i] = 2; 5 } 我的第一想法是何必写这么多代码呢?一个memset不就完事了?并且还自以为是的认为这样做不如memset效率.现在想起觉得自己是多么的傻逼,其实memset就是通过循环实现的.并且memset有其不适用的地方,比如如果数组不是char型呢?显然对于非char型的数组,memset为非0值时就不能适