C++中vector <int> array;如何像下面数组一样赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中vector <int> array;如何像下面数组一样赋值相关的知识,希望对你有一定的参考价值。

数组赋值int a[4]=0,10,22,3;
用上面的向量怎么实现类似这样数组的赋值,不能用循环调用push_back()类似的成员函数

vector中没有像这样直接赋值的办法,如果一定要的话需要经过两步:
int a[4]=0,10,22,3;
std::vector<int> array(a, a + 4);
或者是三步:
int a[4]=0,10,22,3;
std::vector<int> array;
std::copy(a, a+4, std::back_inserter(array)); // 必须#include <iterator>
参考技术A vector <int> text(10); //初始化大小为10,每个值均为0

vector <int> text(10,1); //初始化大小为10,每个值均为1

int array[10]=...;
vector <int> text(array,array+10); //用array对vector进行初始化

vector可以用两个迭代器来初始化。
由于数组可以看做一个随机访问迭代器,所以array+10相当于指定了迭代器范围是从first到first+10。
另外vector的构造函数中用list<int>::begin(),list<int>::begin()+10之类的也是可以的。
参考技术B 可以用boost的的array类,具体参考boost说明

C++ vector<vector<int>> 如何初始化

vector 是个模板 在调用的时候,必须按照模板的格式写:

vector<int> arr (初始个数,赋值);
vector<int> arr(5,0);
扩张时resize即可。
参考技术A vector 是个模板,你掉用的时候,必须按照模板的格式写亚:
vector<int> arr (初始个数,每个都赋予什么);
vector<int> arr(5,0);就行了,扩张时resize即可。
基础加强了。
参考技术B 初始化一个m x n的二维数组,初始值为0;
vector<vector<int>> dp(m, vector<int> (n));
初始化一个m x n的二维数组,初始值为1;
vector<vector<int>> dp(m, vector<int> (n, 1));
参考技术C /*
* File: main.cpp
* Author: chujiangke
*
* Created on 2013年4月10日, 下午5:44
*/

#include <cstdlib>
#include<iostream>
#include<vector>
#include<iterator>
#include<cstdlib>
#include<cstdio>

using namespace std;

/*
*
*/
int main(int argc, char** argv)

vector<int>a,b;
cout <<"input vector A:"<< endl;
int m;
while(getchar()!='\n')

cin >> m;
a.push_back(m);


cout <<"input vector B:"<< endl;
int n;
while(getchar()!='\n')

cin >> n;
b.push_back(n);

vector<vector<int> >vvect;
vvect.push_back(a);
vvect.push_back(b);
return 0;
本回答被提问者和网友采纳
参考技术D 首先呢,可以不用初始化
直接定义就可以
例如:vector<vector<int>> ivec;
插入的值类型是vector<int>

以上是关于C++中vector <int> array;如何像下面数组一样赋值的主要内容,如果未能解决你的问题,请参考以下文章

C++中vector <int> array;如何像下面数组一样赋值

C++ 提高教程 STL - Vector容器嵌套容器

C++中vector<int>a,b(n,0)啥意思

如何在 C++ 中将输入正确读入 2D 向量 vector<vector<int>>

C++ vector<vector<int>> 如何初始化

从成员函数打印 vector<int> 元素时出现 C++ 段错误