青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

DraculaW

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  19 隨筆 :: 0 文章 :: 7 評(píng)論 :: 0 Trackbacks
模板的引入 使c++產(chǎn)生了泛型的算法 泛型的容器
這兩個(gè)是個(gè)好東西 但是在將兩項(xiàng)技術(shù)結(jié)合的時(shí)候產(chǎn)生了一個(gè)問(wèn)題 就是在寫程序的時(shí)候要暴露對(duì)象的類型
就像這個(gè)樣子 :
template<typename T>
vector<T>::iterator find(const T& )
{
........
}
而如果暴露了類型的話 那么就不能寫一段代碼而完成問(wèn)題了 必須為每種容器都寫出相同的算法
怎么辦呢 可以在find中傳出兩個(gè)參數(shù)
template<typename T>
vector<T>::iterator find(const T&, T& result )
{
........
}
但是好像還是有問(wèn)題 譬如類型的引用 還有size 指針 等等 都是不同的類型 寫起來(lái)還是很頭大
于是 聰明的人們想出了type traits這項(xiàng)技術(shù)
這項(xiàng)技術(shù)
typename<typename T>
class iterator
{
public:
    typedef T value_type
}
typename<typename I>
typename I::value_type
find(I &)
{
}

與STL的實(shí)現(xiàn)不同 在boost中 他們使用的是模板片特化來(lái)實(shí)現(xiàn)的type traits
基本思想就是 默認(rèn)大部分都不支持某種特性 然后 當(dāng)某個(gè)類型支持時(shí)就為他特化一個(gè)類 支持這樣的特性
感覺這樣寫的話 在特化的時(shí)候會(huì)不會(huì)代碼會(huì)比較多呢 ...
具體就是
template<typename T>
class something
{
// 在這里寫對(duì)廣大的類的操作
}

然后對(duì)于特殊的類型 譬如說(shuō) int
template<>
class something<int>
{
//然后在這里寫對(duì)Int做的特殊的操作
}

而為了type traits來(lái)說(shuō) 它的特殊操作就是在泛型類里面做一個(gè)枚舉 值為false而在 int里面這個(gè)值為true
那么 當(dāng)算法來(lái)用這個(gè)對(duì)象時(shí) 可以根據(jù)這個(gè)枚舉的值來(lái)選擇相應(yīng)的算法 ,譬如對(duì)int的速度比較快的 或者對(duì)泛型的正確的算法

下面是 std::swap的一個(gè)優(yōu)化版本

//
// iter_swap:
// tests whether iterator is a proxying iterator or not, and
// uses optimal form accordingly:
//
namespace detail{
template <typename I>
static void do_swap(I one, I two, const boost::false_type&)
{
    typedef typename std::iterator_traits<I>::value_type v_t;
    v_t v = *one;
    *one = *two;
    *two = v;
}
template <typename I>
static void do_swap(I one, I two, const boost::true_type&)
{
    using std::swap;
    swap(*one, *two);
}
}

template <typename I1, typename I2>
inline void iter_swap(I1 one, I2 two)
{
    //
    // See is both arguments are non-proxying iterators,
    // and if both iterator the same type:
    //
    typedef typename std::iterator_traits<I1>::reference r1_t;
    typedef typename std::iterator_traits<I2>::reference r2_t;
    typedef boost::integral_constant<bool,
    ::boost::is_reference<r1_t>::value
        && ::boost::is_reference<r2_t>::value
        && ::boost::is_same<r1_t, r2_t>::value> truth_type;

    detail::do_swap(one, two, truth_type());
}

其中 boost::integral_constant<bool, ::boost::is_reference<r1_t>::value
        && ::boost::is_reference<r2_t>::value
        && ::boost::is_same<r1_t, r2_t>::value> truth_type
就是一個(gè)枚舉 看傳入的參數(shù)是否可以用std::swap 如果可以則連接到std::swap不然就用自己寫的 呵呵
posted on 2007-11-15 20:43 DraculaW 閱讀(946) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一级理论性理论a| 裸体素人女欧美日韩| 国产精品久久| 国产精品九色蝌蚪自拍| 国产精品福利网站| 国产乱码精品| 亚洲成人影音| 在线视频精品一| 欧美一区中文字幕| 老司机免费视频久久| 欧美a级一区| 亚洲精品国产精品国自产在线| 欧美韩日视频| 亚洲一区二区动漫| 麻豆精品传媒视频| 欧美日韩一区二区国产| 国产欧美一区二区精品性色| 国内自拍视频一区二区三区 | 亚洲国产精品va在线看黑人| 亚洲美女福利视频网站| 欧美一区二区高清| 欧美日韩1080p| 国产一区二区福利| 日韩一级视频免费观看在线| 久久不射中文字幕| 亚洲三级视频| 久久久亚洲欧洲日产国码αv | 亚洲人成网站影音先锋播放| 亚洲香蕉伊综合在人在线视看| 欧美一区二区私人影院日本| 欧美成人午夜77777| 国产日韩欧美中文| 亚洲图片在线| 亚洲国产cao| 久久精品主播| 国产精品视频观看| 制服丝袜亚洲播放| 亚洲成人自拍视频| 欧美在线亚洲一区| 久久精品国产一区二区三区| 国产美女搞久久| 亚洲精品一二| 蜜臀久久99精品久久久画质超高清 | 国产久一道中文一区| 亚洲日本黄色| 可以免费看不卡的av网站| 亚洲一区视频| 欧美午夜在线视频| 日韩一级大片| 亚洲成人在线网| 巨胸喷奶水www久久久免费动漫| 国产精品区一区二区三区| 夜夜精品视频一区二区| 欧美黄色片免费观看| 欧美影片第一页| 国产午夜亚洲精品理论片色戒| 亚洲小视频在线| 99精品视频免费全部在线| 欧美精品二区| 亚洲精品一区二区三区福利| 亚洲成色www8888| 欧美成年人视频| 亚洲韩国精品一区| 亚洲国产精品一区二区第一页| 久久久噜噜噜久久中文字免| 国内在线观看一区二区三区| 久久在线观看视频| 久久人人看视频| 亚洲日本中文字幕区| 亚洲片区在线| 国产精品videosex极品| 性伦欧美刺激片在线观看| 午夜精品久久久99热福利| 国产日韩三区| 欧美成人免费播放| 欧美福利专区| 国产精品99久久久久久www| 亚洲图片在线观看| 国产一区99| 亚洲激情在线播放| 欧美性猛片xxxx免费看久爱| 亚洲尤物在线| 久久精品国产一区二区电影| 亚洲国产婷婷香蕉久久久久久| 欧美福利网址| 欧美色欧美亚洲另类七区| 欧美一区二区高清| 久久亚洲高清| 亚洲欧美精品一区| 久久精品午夜| 一区二区三区免费网站| 欧美在线高清| 99国产精品久久久久久久成人热| 亚洲视频一区二区在线观看| 国内精品伊人久久久久av影院 | 美女露胸一区二区三区| 免费观看成人| 小黄鸭精品aⅴ导航网站入口| 久久狠狠婷婷| 亚洲一区二区精品在线| 久久精品久久综合| 亚洲免费视频在线观看| 久久女同互慰一区二区三区| 亚洲深夜福利在线| 久久免费视频网站| 性一交一乱一区二区洋洋av| 欧美成人精品激情在线观看| 欧美一区亚洲| 国产精品扒开腿爽爽爽视频| 欧美国产精品久久| 黄色成人片子| 亚洲性夜色噜噜噜7777| 亚洲九九九在线观看| 久久av一区二区三区| 亚洲视频精品| 欧美激情欧美激情在线五月| 麻豆成人91精品二区三区| 国产精品一区在线观看| 亚洲另类一区二区| 亚洲精品在线视频| 久久综合久久久久88| 久久久久综合| 国产在线拍偷自揄拍精品| 这里只有精品视频| 一区二区高清| 欧美日韩国产bt| 亚洲黄色片网站| 在线观看国产成人av片| 香蕉久久一区二区不卡无毒影院| 亚洲视频碰碰| 欧美三日本三级少妇三2023| 亚洲精品四区| 亚洲美女色禁图| 欧美激情一二三区| 91久久精品日日躁夜夜躁国产| 在线观看成人小视频| 久久综合给合久久狠狠色 | 亚洲国产免费看| 久久亚裔精品欧美| 欧美二区乱c少妇| 亚洲电影自拍| 裸体丰满少妇做受久久99精品| 蜜臀99久久精品久久久久久软件| 国产在线不卡| 另类天堂av| 亚洲国产日日夜夜| 亚洲一区二区三区涩| 国产精品欧美风情| 午夜一区在线| 免费视频一区| 夜夜嗨av一区二区三区四区| 欧美日韩国内自拍| 亚洲网站在线| 久久婷婷国产综合精品青草| 黑丝一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一 | 国产在线拍偷自揄拍精品| 欧美伊人久久| 免费观看欧美在线视频的网站| 亚洲第一区中文99精品| 欧美成人亚洲成人日韩成人| 亚洲精品三级| 性色av一区二区三区| 国产在线欧美| 欧美精品免费视频| 午夜久久资源| 亚洲国产福利在线| 欧美亚洲三级| 在线看片第一页欧美| 欧美绝品在线观看成人午夜影视 | 久久视频精品在线| 99av国产精品欲麻豆| 国产视频一区欧美| 欧美日产国产成人免费图片| 欧美一级久久久| 亚洲三级免费电影| 久久日韩精品| 亚洲一区二区免费视频| 国语自产精品视频在线看| 欧美啪啪成人vr| 久久大逼视频| 日韩视频在线播放| 久久这里只有精品视频首页| 一本久道久久综合婷婷鲸鱼| 国产欧美精品日韩区二区麻豆天美| 久久久久久91香蕉国产| 一区二区三区免费在线观看| 免费在线日韩av| 亚洲欧美激情四射在线日| 91久久精品国产91性色| 国产在线精品一区二区中文| 国产精品九九| 欧美日韩综合久久| 欧美成人影音| 巨胸喷奶水www久久久免费动漫| 亚洲欧美成人综合| 一区二区三区四区蜜桃| 亚洲精品视频在线| 亚洲电影中文字幕| 欧美成人免费小视频|