Iterator and allocator

來源:互聯網
上載者:User

 一 迭代器。

 1 迭代器雖然不是一個通用指標,可是可以按照一個指標去運用。它只是指向數組(序列元素)的指標概念的一個抽象,它最關鍵的屬性:

 --  "當前被指向的元素"

 --指向下個元素。

 --相等。

列入內部類型 int* 就是int[]的一個迭代器.

 

下面是我做的一個例子:

char  c[] = "abcd";

make_heap<char*>(c, c+strlen(c) );//這裡模板class 應該是一個迭代器的,對於內部類型,指標就可以認為是迭代器。

2 迭代器的類別 及繼承關係.

2 迭代器特徵類---iterator_traits

有了iterator_traits,我們就可以寫出各種不依賴於迭代器參數性質的代碼。

例如:

template<class In,class T>

typename iterator_trains<In>::difference_type count(In first,In last,const T& val)

{

   typename iterator_traits<In>::difference_type res =0;

  while(first != last) if(*first++ = val) ++res;

  return res;

}

3 插入器

 將所產生的輸入通過迭代器放入一個容器,意味著跟隨在迭代器所指位置之後的元素就會被覆蓋掉。這也意味著一處和隨之而來的儲存破壞的可能性。

 

4 流迭代器。

--ostream_iterator

--istream_iterator

--ostreambuf_iterator

--istreambuf_iterator

 

//test the iterator of the stream.<br />void teststreamiterator()<br />{<br /> ostream_iterator<int>os(cout);<br /> *os++ = 10;<br /> *os = 20;<br />}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.