自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++11學(xué)習(xí) - Array的用法與vector用法

系統(tǒng) Linux
對(duì)于Array來(lái)說(shuō)它是固定大小的序列容器,它們包含嚴(yán)格的線性序列排序的特定數(shù)量的元素,在其內(nèi)部來(lái)說(shuō),數(shù)組除數(shù)組除保留其包含的元素外不保留其他任何數(shù)據(jù)。

Array

-對(duì)于Array來(lái)說(shuō)它是固定大小的序列容器,它們包含嚴(yán)格的線性序列排序的特定數(shù)量的元素,在其內(nèi)部來(lái)說(shuō),數(shù)組除數(shù)組除保留其包含的元素外不保留其他任何數(shù)據(jù)(甚至不包括其大?。ㄟ@是模板參數(shù),固定在編譯時(shí)))。就存儲(chǔ)大小而言,它與使用該語(yǔ)言的括號(hào)語(yǔ)法([])聲明的普通數(shù)組一樣有效。此類僅向其添加一層成員和全局函數(shù),因此可以將數(shù)組用作標(biāo)準(zhǔn)容器。要知道的是,零大小的數(shù)組是有效的,但不應(yīng)該取消引用

1.Array的模板形式為 template < class T, size_t N > class array;

2.Array的功能函數(shù)

array::begin-返回的是迭代器的開始

array::end-返回的是迭代器的末尾

array::rbegin-返回反向迭代器以反向開始

array::rend-返回反向迭代器以方向末尾

array::cbegin-指針指向的const類型,不能進(jìn)行修改

array::cend-同理

array::data()-有兩種形式一種是const,一種是非const,返回的是數(shù)組的內(nèi)容 

  1. // array::data  
  2. #include <iostream>  
  3. #include <cstring>  
  4. #include <array> 
  5. int main ()  
  6.  
  7.   const char* cstr = "www.linuxmi.com" 
  8.   std::array<char,15> charray;  
  9.   std::memcpy (charray.data(),cstr,15);  
  10.   std::cout << charray.data() << '\n'; 
  11.   return 0;  

在這里通過(guò):memcpy函數(shù)將其定義的cstr復(fù)制到定義的數(shù)組內(nèi)

運(yùn)行結(jié)果:www.linuxmi.com

array::max_size-返回的是數(shù)組的最大長(zhǎng)度 

  1. // array::max_size  
  2. #include <iostream>  
  3. #include <array>  
  4. int main ()  
  5.  
  6.   std::array<int,10> myints;  
  7.   std::cout << "size of myints: " << myints.size() << '\n';  
  8.   std::cout << "max_size of myints: " << myints.max_size() << '\n';  
  9.   return 0;  

運(yùn)行結(jié)果為:

size of myints: 10

max_size of myints: 10

vector的用法

-向量是表示可以改變大小的數(shù)組的序列容器。

與array相比來(lái)說(shuō),上面所說(shuō)的一些基本類型都有,vector新增了push_back,insert等一些類型

push_back-往vector最后面加數(shù)據(jù) 

  1. // vector::push_back  
  2. #include <iostream>  
  3. #include <vector>  
  4. int main ()  
  5.  
  6.   std::vector<int> myvector;  
  7.   int myint;  
  8.   std::cout << "Please enter some integers (enter 0 to end):\n";  
  9.   do {  
  10.     std::cin >> myint;  
  11.     myvector.push_back (myint);  
  12.   } while (myint); 
  13.   std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n";  
  14.   return 0;  

 insert的用法 

  1. single element (1)    
  2. iterator insert (const_iterator position, const value_type& val);  
  3. fill (2)     
  4. iterator insert (const_iterator position, size_type n, const value_type& val);  
  5. range (3)     
  6. template <class InputIterator>  
  7. iterator insert (const_iterator position, InputIterator first, InputIterator last);  
  8. move (4)      
  9. iterator insert (const_iterator position, value_type&& val);  
  10. initializer list (5)      
  11. iterator insert (const_iterator position, initializer_list<value_type> il); 

代碼實(shí)現(xiàn) 

  1. // inserting into a vector  
  2. #include <iostream>  
  3. #include <vector>  
  4. int main ()  
  5.  
  6.   std::vector<int> myvector (3,100);  
  7.   std::vector<int>::iterator it;  
  8.   it = myvector.begin();  
  9.   it = myvector.insert ( it , 200 );  
  10.   myvector.insert (it,2,300);  
  11.   // "it" no longer valid, get a new one:  
  12.   it = myvector.begin();  
  13.   std::vector<int> anothervector (2,400); 
  14.   myvector.insert (it+2,anothervector.begin(),anothervector.end());  
  15.   int myarray [] = { 501,502,503 };  
  16.   myvector.insert (myvector.begin(), myarray, myarray+3);  
  17.   std::cout << "myvector contains:";  
  18.   for (it=myvector.begin(); it<myvector.end(); it++)  
  19.     std::cout << ' ' << *it;  
  20.   std::cout << '\n';  
  21.   return 0;  

運(yùn)行結(jié)果myvector contains: 501 502 503 300 300 400 400 200 100 100 100

 OK,就這樣。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux公社
相關(guān)推薦

2010-02-06 16:05:51

C++ Vector

2009-06-12 09:12:27

VectorJava

2024-02-21 23:43:11

C++11C++開發(fā)

2011-07-25 13:05:37

Objective-C 委托

2009-08-26 18:13:55

C#多線程lock

2010-10-09 09:18:14

JavaScriptArray對(duì)象

2024-05-29 13:21:21

2022-08-31 10:13:04

C語(yǔ)言代碼

2009-09-10 16:41:13

C# get post

2020-06-01 21:07:33

C11C++11內(nèi)存

2009-08-27 15:22:27

C#中的GET與SET

2009-09-09 10:53:25

C# MessageB

2010-07-27 14:44:23

Flex Array

2011-05-23 13:27:53

2013-12-23 09:48:43

C++鎖定模式

2011-05-23 11:22:37

2013-09-25 14:20:46

2012-02-20 09:52:27

ibmdw

2013-05-30 00:49:36

C++11C++條件變量

2019-12-05 12:57:53

slice編程函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)