在C++中初始化Vector

Vector可以存储多个数据值,类似于数组,但它们只能存储对象引用,而不能存储基本数据类型。它们存储对象的引用意味着它们指向包含数据的对象,而不是直接存储数据。与数组不同,向量不需要初始化大小。它们可以根据对象引用的数量自由调整大小,这是因为它们的存储由容器自动处理。容器将保留用于分配存储空间的alloc的内部副本,以便存储其整个生命周期。向量可以使用迭代器进行定位和遍历,因此它们被放置在连续的存储空间中。向量还具有安全功能,可以避免程序崩溃,而数组则没有这个特性。我们可以为向量提供保留空间,但不能为数组提供。数组不是一个类,但向量是一个类。在向量中,可以删除元素,但在数组中不能。

使用父类“Collection class”,向量以模板类的形式发送。数组是具有特定属性的较低级别数据结构。向量具有函数和构造函数,它们不是基于索引的。它们与以索引为基础的数组相反。在这里,最低地址提供给第一个元素,最高地址提供给最后一个元素。向量用于插入和删除对象,而数组用于频繁访问对象。数组是节省内存的数据结构,而向量为了管理存储并动态增长而使用了更多的内存。向量访问元素需要更多的时间,但这不适用于数组。

有四种初始化C++中的向量的方法:

  • 逐个输入值
  • 使用向量类的重载构造函数
  • 使用数组的帮助
  • 使用另一个已初始化的向量

逐个输入值 -

可以使用向量类的push_back()方法逐个插入向量中的所有元素。

算法

开始 
声明一个向量变量v。 
然后调用push_back()函数,这样可以将值插入到向量v中。 
然后打印"Vector elements: "。 
对于(int a: v),
  打印变量a的所有元素。

代码 -

#include <iostream> 
#include <vector> 
using namespace std; int main() 
{ 
  vector<int> vec; 
  vec.push_back(1); 
  vec.push_back(2); 
  vec.push_back(3); 
  vec.push_back(4); 
  vec.push_back(5); 
  vec.push_back(6); 
  vec.push_back(7); 
  vec.push_back(8); 
  vec.push_back(9); 
  vec.push_back(101); 
  for (int i = 0; i < vec.size(); 
       i++) 
  { 
    cout << vec[i] << " "; 
  } 
  return 0; 
} 

输出

1.png

使用重载构造函数 -

当向量具有多个具有相同值的元素时,我们使用此方法。

使用向量类的重载构造函数 -

此方法主要用于向量填充具有相同值的多个元素时。

算法

开始 
首先,我们初始化一个变量s。 
然后,我们使用大小's'创建一个向量v。 
然后初始化向量v1。 
然后使用v1初始化v2。 
然后我们打印元素。 
结束。 

代码 -

#include <iostream> 
#include <vector> 
using namespace std; 
int main() 
{ 
  int elements = 12; 
  vector<int> vec(elements, 8); 
  for (int i = 0; i < vec.size(); i++) 
  { 
    cout << vec[i] << " "; 
  } 
  return 0; 
} 

输出

8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8 
8

通过数组的帮助 -

将一个数组传递给向量类的构造函数。数组包含将填充向量的元素。

算法 -

开始 
首先,我们创建一个向量v。 
然后,我们初始化向量。 
最后,打印元素。 
结束。 

代码 -

#include <iostream> 
#include <vector> 
using namespace std; 
int main() 
{ 
  vector<int> vectr{9,8,7,6,5,4,3,2,1,0}; 
  for (int i = 0; i < vectr.size(); i++) 
  { cout << vectr[i] << " "; 
  } 
  return 0; 
} 

输出

9 
8 
7
6 
5 
4
3
2 
1 
0

使用另一个已初始化的向量 -

在此方法中,我们需要将已初始化向量的begin()和end()迭代器传递给向量类的构造函数。然后我们初始化一个新向量并用旧向量填充它。

算法 -

开始 
  首先,我们创建一个向量v1。 
  然后,我们用一个数组初始化向量v1。 
  然后我们通过v1初始化向量v2。 
  我们要打印元素。 
结束。 

代码 -

#include <iostream> 
#include <vector> 
using namespace std; 
int main() 
{ vector<int> vec_1{1,2,3,4,5,6,7,8}; 
 vector<int> vec_2(vec_1.begin(), vec_1.end()); 
 for (int i = 0; i < vec_2.size(); i++) 
 { 
   cout << vec_2[i] << " "; 
 } 
 return 0; 
} 

输出

1 
2 
3 
4 
5 
6 
7 
8

标签: C++语言, C++语言教程, C++语言技术, C++语言学习, C++语言学习教程, C++语言下载, C++语言开发, C++语言入门教程, C++语言进阶教程, C++语言高级教程, C++语言笔试题