boost 資料結構

2021-08-11 06:05:12 字數 2296 閱讀 4357

#include #include
#include

//tuple(元組),他和std::pair類似,只是他不僅僅儲存一對資料,可以儲存無限多個資料

//tuple使其支援流的輸出,需要包含 #include typedef boost::tupleperson;

std::stringstream strstream;

person per("hello","hi",32);

strstream << per;

trace("%s\n",strstream.str().c_str());//(hello hi 32)

//boost::make_tuple

//比較操作,需要包含 boost/tuple/tuple_comparison.hpp

//boost::tie 使用,比較特殊,他可以引用變數,變數一旦修改他也修改了

1.boost::variant

boost::variantv;

v=3.14;

v='a';

v="jks";//最後壓入了string

double v1=boost::get(v);//這裡會丟擲乙個異常,boost::variant 以最後乙個為準

char v2=boost::get(v);

string v3=boost::get(v);

boost::variantv;

v=3.14;

v='a';

v="jks";//最後壓入了string

string v3=boost::get(v);//提取正確

boost::variantv;

//正確執行如下

v=3.14;

double v1=boost::get(v);

v='a';

char v2=boost::get(v);

v="jks";

string v3=boost::get(v);

boost::variantv;

v=3.14;

v='a';

v="jks";//最後壓入了string

trycatch (std::exception& e)

std::vectorvcdata; 

struct output : public boost::static_visitor<>

void operator()(char &c) const

void operator()(std::string &s) const

}; void cmfc08dlg::onbnclickedbutton2()

/*template inline

boost_variant_aux_generic_result_type(typename visitor::result_type) //這裡是返回乙個 visitor::result_type

visitor& visitor(訪問者類)

visitable& visitable(支援訪問者的類)

所以從上面看出

1.visitor& visitor(訪問者類),定義了 visitor::result_type 即可

1.static_visitor 原始碼

namespace detail ;

typedef void static_visitor_default_return;//1.重新定義了 void 指向為 static_visitor_default_return

} // namespace detail

template //2.預設的型別是void,所以直接static_visitor<>表示用void型別

class static_visitor

: public detail::is_static_visitor_tag

~static_visitor() boost_noexcept

#endif

};*/

struct output //: public boost::static_visitor<> 

void operator()(char &c) const

void operator()(std::string &s) const

};

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 01 資料與資料結構

1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...