關於容器輸出的學習與簡化過程

2021-08-22 07:56:31 字數 1112 閱讀 3613

在學習c++標準庫的過程中,各種容器是很大一塊,每次驗證自己的結果輸出容器的時候除了string 可以簡單的cout《輸出以外,其他的都要for()迴圈用迭代器遍歷,比如輸出vectorvec容器就要這樣

for(vector::iterator it = vec.begin(); it != vec.end(),++it)

cout<<*it<<" :;

cout《很不方便,所以以前就自己編了個過載函式printcon以輸出常用的容器

void printcon(list::const_iterator,list::const_iterator);

void printcon(deque::const_iterator,deque::const_iterator);

void printcon(vector::const_iterator,vector::const_iterator);

void printcon(vector::const_iterator,vector::const_iterator);

main()

void printcon(list::const_iterator first,list::const_iterator last)

{cout<::const_iterator first,deque::const_iterator last)

{cout<::const_iterator first,vector::const_iterator last)

{cout<::const_iterator first,vector::const_iterator last)

{cout<

使用起來還算方便,也簡潔,只要兩個迭代器就可以遍歷輸出容器,而且輸出範圍內的容器也可以。就是**比較複雜,假如要適應全部的容器,**將會複雜的嚇人,但我沒有學過模版,不知道那樣是不是可以使這個函式簡單一些,不過學了流迭代器以後,問題得到了解決,上面那個問題,只需要

std::ostream_iteratorost_iter(cout," ");

std::copy(vec.begin(),.vec.end(),ost_iter);

就可以得到解決了,真是簡單多了啊,終於知道為什麼c++要定義輸出流迭代器這乍一看沒有什麼用的東西了。

學習之路 關於map容器的學習

一 標頭檔案 include 二定義typedefmap int,cstring udt map int cstring udt map int cstring enummap 三 使用 map容器的使用 map 就是相當於乙個結構體,裡面有 鍵 值對 就相當於陣列的索引,每乙個索引下只有乙個值 個...

關於容器輸出的進一步優化

以前我討論過了在自己學習過程中經常要用到的乙個特性,就是容器的輸出問題,總感覺不是太方便,在學習過程中用的又非常多,我曾經在 學了模板再來看容器輸出的簡化 中已經把他處理的很簡單了,不過最近看了tc pl受了點啟發,又將程式進一步改進,主要的好處是更符合標準庫容器的使用習慣,以首尾兩個迭代器為輸入,...

docker學習 3 容器的啟動過程

這一節我們來稍微了解下docker原理性的東西 docker run i t ubuntu bin bash輸入上面這行命令,啟動乙個ubuntu容器時,到底發生了什麼?大致過程可以用下圖描述 首先系統要有乙個docker daemon的後台程序在執行,當剛才這行命令敲下時,1.docker cli...