C++ Program to Convert Vector to a List

Vectors in C++ are dynamic arrays that can contain any type of data, it can be user-defined or primitive. Dynamic is in the sense that the size of a vector can increase or decrease according to the operations. Vectors have support for various functions, for which data manipulation is very easy. Lists on the other hand are containers same as vectors, but list implementation is based on doubly linked lists compared to the array implementation of vectors. Lists offer the same constant time operations anywhere in it, that is the main feature of using lists. We take a look at the major ways to convert a vector into a list.

Using Range Constructor

To use the range constructor, the beginning and the ending pointer of the vector has to be passed as an argument to the constructor while creating the list.

Syntax

vector <int> ip;
list <int> op( ip.begin(), ip.end() );

Algorithm

  • Take input in a vector.
  • Pass the beginning and the ending pointer of the vector to the range constructor of the list.
  • Display the contents of the list.

Example

<div class="execute"></div><div class="code-mirror  language-cpp" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><iostream></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><vector></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><list></span></span>

<span class="token keyword">using</span> <span class="token keyword">namespace</span> std<span class="token punctuation">;</span>
list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">solve</span><span class="token punctuation">(</span> vector <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> ip<span class="token punctuation">)</span> <span class="token punctuation">{</span>
   <span class="token comment">//initialise the list</span>
   list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">op</span><span class="token punctuation">(</span> ip<span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ip<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
   <span class="token keyword">return</span> op<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   vector <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">ip</span><span class="token punctuation">(</span> <span class="token punctuation">{</span> <span class="token number">15</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">65</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">24</span><span class="token punctuation">,</span> <span class="token number">33</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">29</span><span class="token punctuation">,</span> <span class="token number">36</span><span class="token punctuation">,</span> <span class="token number">58</span><span class="token punctuation">,</span> <span class="token number">96</span><span class="token punctuation">,</span> <span class="token number">88</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">71</span> <span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
   list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> op <span class="token operator">=</span> <span class="token function">solve</span><span class="token punctuation">(</span> ip <span class="token punctuation">)</span><span class="token punctuation">;</span>

   <span class="token comment">//display the input</span>
   cout<span class="token operator"><<</span> <span class="token string">"The input vector is: "</span><span class="token punctuation">;</span>
   <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> i <span class="token operator">:</span> ip <span class="token punctuation">)</span> <span class="token punctuation">{</span>
      cout<span class="token operator"><<</span> i <span class="token operator"><<</span> <span class="token string">" "</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>

   <span class="token comment">//display the output</span>
   cout <span class="token operator"><<</span> <span class="token string">"\nThe output list is: "</span><span class="token punctuation">;</span>
   <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> j <span class="token operator">:</span> op <span class="token punctuation">)</span> <span class="token punctuation">{</span>
      cout <span class="token operator"><<</span> j <span class="token operator"><<</span> <span class="token string">" "</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>
<span class="token keyword">   return</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

The input vector is: 15 20 65 30 24 33 12 29 36 58 96 88 30 71 
The output list is: 15 20 65 30 24 33 12 29 36 58 96 88 30 71

Using the assign function of std::list

The usage of std::list is similar to the usage of the range constructor. We pass the beginning and end pointer of the vector the same way as we passed in the range constructor.

Syntax

vector <int> ip;
list <int> op();
op.assign(ip.begin(), ip.end());

Algorithm

  • Take input in a vector.
  • Define a new list.
  • Pass the beginning and the ending pointer of the vector to the assign function of the list
  • Display the contents of the list.

Example

<div class="execute"></div><div class="code-mirror  language-cpp" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><iostream></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><vector></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><list></span></span>

<span class="token keyword">using</span> <span class="token keyword">namespace</span> std<span class="token punctuation">;</span>
list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">solve</span><span class="token punctuation">(</span> vector <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> ip<span class="token punctuation">)</span> <span class="token punctuation">{</span>

   <span class="token comment">//initialise the list</span>
   list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> op<span class="token punctuation">;</span>
   op<span class="token punctuation">.</span><span class="token function">assign</span><span class="token punctuation">(</span> ip<span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ip<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
   <span class="token keyword">return</span> op<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   vector <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">ip</span><span class="token punctuation">(</span> <span class="token punctuation">{</span> <span class="token number">40</span><span class="token punctuation">,</span> <span class="token number">77</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">65</span><span class="token punctuation">,</span> <span class="token number">92</span> <span class="token punctuation">,</span><span class="token number">13</span><span class="token punctuation">,</span> <span class="token number">72</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">67</span><span class="token punctuation">,</span> <span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">88</span><span class="token punctuation">,</span> <span class="token number">37</span><span class="token punctuation">,</span> <span class="token number">18</span><span class="token punctuation">,</span> <span class="token number">23</span><span class="token punctuation">,</span> <span class="token number">41</span><span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
   list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> op <span class="token operator">=</span> <span class="token function">solve</span><span class="token punctuation">(</span> ip <span class="token punctuation">)</span><span class="token punctuation">;</span>

   <span class="token comment">//display the input</span>
   cout<span class="token operator"><<</span> <span class="token string">"The input vector is: "</span><span class="token punctuation">;</span>
   <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> i <span class="token operator">:</span> ip <span class="token punctuation">)</span> <span class="token punctuation">{</span>
      cout<span class="token operator"><<</span> i <span class="token operator"><<</span> <span class="token string">" "</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>

   <span class="token comment">//display the output</span>
   cout <span class="token operator"><<</span> <span class="token string">"\nThe output list is: "</span><span class="token punctuation">;</span>
   <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> j <span class="token operator">:</span> op <span class="token punctuation">)</span> <span class="token punctuation">{</span>
      cout <span class="token operator"><<</span> j <span class="token operator"><<</span> <span class="token string">" "</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>
   <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

The input vector is: 40 77 8 65 92 13 72 30 67 12 88 37 18 23 41 
The output list is: 40 77 8 65 92 13 72 30 67 12 88 37 18 23 41 

Using the list insert function

We can insert data into a list from a vector using the insert function of the list. The list takes the beginning of the list pointer and the pointers of the beginning and the ending of the vector.

Syntax

vector <int> ip;
list <int> op();
op.insert(op.begin(), ip.begin(), ip.end());

Algorithm

  • Take input in a vector.
  • Define a new list.
  • Pass the beginning pointer of the list and the beginning and the ending pointer of the vector to the insert function of the list.
  • Display the contents of the list.

Example

<div class="execute"></div><div class="code-mirror  language-cpp" contenteditable="plaintext-only" spellcheck="false" style="outline: none; overflow-wrap: break-word; overflow-y: auto; white-space: pre-wrap;"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><iostream></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><vector></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><list></span></span>

<span class="token keyword">using</span> <span class="token keyword">namespace</span> std<span class="token punctuation">;</span>
list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">solve</span><span class="token punctuation">(</span> vector <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> ip<span class="token punctuation">)</span> <span class="token punctuation">{</span>

   <span class="token comment">//initialise the list</span>
   list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> op<span class="token punctuation">;</span>
   op<span class="token punctuation">.</span><span class="token function">insert</span><span class="token punctuation">(</span> op<span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ip<span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> ip<span class="token punctuation">.</span><span class="token function">end</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
   <span class="token keyword">return</span> op<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
   vector <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> <span class="token function">ip</span><span class="token punctuation">(</span> <span class="token punctuation">{</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">82</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">13</span><span class="token punctuation">,</span> <span class="token number">69</span><span class="token punctuation">,</span> <span class="token number">53</span><span class="token punctuation">,</span> <span class="token number">70</span><span class="token punctuation">,</span> <span class="token number">19</span><span class="token punctuation">,</span> <span class="token number">73</span><span class="token punctuation">,</span> <span class="token number">46</span><span class="token punctuation">,</span> <span class="token number">26</span><span class="token punctuation">,</span> <span class="token number">11</span><span class="token punctuation">,</span> <span class="token number">37</span><span class="token punctuation">,</span> <span class="token number">83</span><span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
   list <span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> op <span class="token operator">=</span> <span class="token function">solve</span><span class="token punctuation">(</span> ip <span class="token punctuation">)</span><span class="token punctuation">;</span>

   <span class="token comment">//display the input</span>
   cout<span class="token operator"><<</span> <span class="token string">"The input vector is: "</span><span class="token punctuation">;</span>

   <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> i <span class="token operator">:</span> ip <span class="token punctuation">)</span> <span class="token punctuation">{</span>
      cout<span class="token operator"><<</span> i <span class="token operator"><<</span> <span class="token string">" "</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>

   <span class="token comment">//display the output</span>
   cout <span class="token operator"><<</span> <span class="token string">"\nThe output list is: "</span><span class="token punctuation">;</span>
   <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> j <span class="token operator">:</span> op <span class="token punctuation">)</span> <span class="token punctuation">{</span>
      cout <span class="token operator"><<</span> j <span class="token operator"><<</span> <span class="token string">" "</span><span class="token punctuation">;</span>
   <span class="token punctuation">}</span>
   <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</div><div class="output-wrapper"><div class="console-close"></div><div class="code-output"></div></div>

Output

The input vector is: 30 82 7 13 69 53 70 19 73 46 26 11 37 83 
The output list is: 30 82 7 13 69 53 70 19 73 46 26 11 37 83 

Conclusion

Conversion from a vector to a list in C++ has the benefits of uniform operation complexities at any position in the list. There are a few more methods using which we can convert a vector to a list. However, we have only mentioned the simplest and fastest methods here.

Updated on: 2022-10-19T12:37:53+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements