亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stl_function.h

?? TSP問題的一個類庫 有源代碼和stl
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Hewlett-Packard Company makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 *
 *
 * Copyright (c) 1996-1998
 * Silicon Graphics Computer Systems, Inc.
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.  Silicon Graphics makes no
 * representations about the suitability of this software for any
 * purpose.  It is provided "as is" without express or implied warranty.
 */

/* NOTE: This is an internal header file, included by other STL headers.
 *   You should not attempt to use it directly.
 */

#ifndef __SGI_STL_INTERNAL_FUNCTION_H
#define __SGI_STL_INTERNAL_FUNCTION_H

__STL_BEGIN_NAMESPACE

template <class _Arg, class _Result>
struct unary_function {
  typedef _Arg argument_type;
  typedef _Result result_type;
};

template <class _Arg1, class _Arg2, class _Result>
struct binary_function {
  typedef _Arg1 first_argument_type;
  typedef _Arg2 second_argument_type;
  typedef _Result result_type;
};      

template <class _Tp>
struct plus : public binary_function<_Tp,_Tp,_Tp> {
  _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; }
};

template <class _Tp>
struct minus : public binary_function<_Tp,_Tp,_Tp> {
  _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; }
};

template <class _Tp>
struct multiplies : public binary_function<_Tp,_Tp,_Tp> {
  _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; }
};

template <class _Tp>
struct divides : public binary_function<_Tp,_Tp,_Tp> {
  _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; }
};

// identity_element (not part of the C++ standard).

template <class _Tp> inline _Tp identity_element(plus<_Tp>) {
  return _Tp(0);
}
template <class _Tp> inline _Tp identity_element(multiplies<_Tp>) {
  return _Tp(1);
}

template <class _Tp>
struct modulus : public binary_function<_Tp,_Tp,_Tp> 
{
  _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; }
};

template <class _Tp>
struct negate : public unary_function<_Tp,_Tp> 
{
  _Tp operator()(const _Tp& __x) const { return -__x; }
};

template <class _Tp>
struct equal_to : public binary_function<_Tp,_Tp,bool> 
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; }
};

template <class _Tp>
struct not_equal_to : public binary_function<_Tp,_Tp,bool> 
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; }
};

template <class _Tp>
struct greater : public binary_function<_Tp,_Tp,bool> 
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; }
};

template <class _Tp>
struct less : public binary_function<_Tp,_Tp,bool> 
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; }
};

template <class _Tp>
struct greater_equal : public binary_function<_Tp,_Tp,bool>
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; }
};

template <class _Tp>
struct less_equal : public binary_function<_Tp,_Tp,bool> 
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; }
};

template <class _Tp>
struct logical_and : public binary_function<_Tp,_Tp,bool>
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; }
};

template <class _Tp>
struct logical_or : public binary_function<_Tp,_Tp,bool>
{
  bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; }
};

template <class _Tp>
struct logical_not : public unary_function<_Tp,bool>
{
  bool operator()(const _Tp& __x) const { return !__x; }
};

template <class _Predicate>
class unary_negate
  : public unary_function<typename _Predicate::argument_type, bool> {
protected:
  _Predicate _M_pred;
public:
  explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {}
  bool operator()(const typename _Predicate::argument_type& __x) const {
    return !_M_pred(__x);
  }
};

template <class _Predicate>
inline unary_negate<_Predicate> 
not1(const _Predicate& __pred)
{
  return unary_negate<_Predicate>(__pred);
}

template <class _Predicate> 
class binary_negate 
  : public binary_function<typename _Predicate::first_argument_type,
                           typename _Predicate::second_argument_type,
                           bool> {
protected:
  _Predicate _M_pred;
public:
  explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {}
  bool operator()(const typename _Predicate::first_argument_type& __x, 
                  const typename _Predicate::second_argument_type& __y) const
  {
    return !_M_pred(__x, __y); 
  }
};

template <class _Predicate>
inline binary_negate<_Predicate> 
not2(const _Predicate& __pred)
{
  return binary_negate<_Predicate>(__pred);
}

template <class _Operation> 
class binder1st
  : public unary_function<typename _Operation::second_argument_type,
                          typename _Operation::result_type> {
protected:
  _Operation op;
  typename _Operation::first_argument_type value;
public:
  binder1st(const _Operation& __x,
            const typename _Operation::first_argument_type& __y)
      : op(__x), value(__y) {}
  typename _Operation::result_type
  operator()(const typename _Operation::second_argument_type& __x) const {
    return op(value, __x); 
  }
};

template <class _Operation, class _Tp>
inline binder1st<_Operation> 
bind1st(const _Operation& __fn, const _Tp& __x) 
{
  typedef typename _Operation::first_argument_type _Arg1_type;
  return binder1st<_Operation>(__fn, _Arg1_type(__x));
}

template <class _Operation> 
class binder2nd
  : public unary_function<typename _Operation::first_argument_type,
                          typename _Operation::result_type> {
protected:
  _Operation op;
  typename _Operation::second_argument_type value;
public:
  binder2nd(const _Operation& __x,
            const typename _Operation::second_argument_type& __y) 
      : op(__x), value(__y) {}
  typename _Operation::result_type
  operator()(const typename _Operation::first_argument_type& __x) const {
    return op(__x, value); 
  }
};

template <class _Operation, class _Tp>
inline binder2nd<_Operation> 
bind2nd(const _Operation& __fn, const _Tp& __x) 
{
  typedef typename _Operation::second_argument_type _Arg2_type;
  return binder2nd<_Operation>(__fn, _Arg2_type(__x));
}

// unary_compose and binary_compose (extensions, not part of the standard).

template <class _Operation1, class _Operation2>
class unary_compose
  : public unary_function<typename _Operation2::argument_type,
                          typename _Operation1::result_type> 
{
protected:
  _Operation1 _M_fn1;
  _Operation2 _M_fn2;
public:
  unary_compose(const _Operation1& __x, const _Operation2& __y) 
    : _M_fn1(__x), _M_fn2(__y) {}
  typename _Operation1::result_type
  operator()(const typename _Operation2::argument_type& __x) const {
    return _M_fn1(_M_fn2(__x));
  }
};

template <class _Operation1, class _Operation2>
inline unary_compose<_Operation1,_Operation2> 
compose1(const _Operation1& __fn1, const _Operation2& __fn2)
{
  return unary_compose<_Operation1,_Operation2>(__fn1, __fn2);
}

template <class _Operation1, class _Operation2, class _Operation3>
class binary_compose
  : public unary_function<typename _Operation2::argument_type,
                          typename _Operation1::result_type> {
protected:
  _Operation1 _M_fn1;
  _Operation2 _M_fn2;
  _Operation3 _M_fn3;
public:
  binary_compose(const _Operation1& __x, const _Operation2& __y, 
                 const _Operation3& __z) 
    : _M_fn1(__x), _M_fn2(__y), _M_fn3(__z) { }
  typename _Operation1::result_type
  operator()(const typename _Operation2::argument_type& __x) const {
    return _M_fn1(_M_fn2(__x), _M_fn3(__x));
  }
};

template <class _Operation1, class _Operation2, class _Operation3>
inline binary_compose<_Operation1, _Operation2, _Operation3> 
compose2(const _Operation1& __fn1, const _Operation2& __fn2, 
         const _Operation3& __fn3)
{
  return binary_compose<_Operation1,_Operation2,_Operation3>
    (__fn1, __fn2, __fn3);
}

template <class _Arg, class _Result>
class pointer_to_unary_function : public unary_function<_Arg, _Result> {
protected:
  _Result (*_M_ptr)(_Arg);
public:
  pointer_to_unary_function() {}
  explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) {}
  _Result operator()(_Arg __x) const { return _M_ptr(__x); }
};

template <class _Arg, class _Result>
inline pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg))
{
  return pointer_to_unary_function<_Arg, _Result>(__x);
}

template <class _Arg1, class _Arg2, class _Result>
class pointer_to_binary_function : 
  public binary_function<_Arg1,_Arg2,_Result> {
protected:
    _Result (*_M_ptr)(_Arg1, _Arg2);
public:
    pointer_to_binary_function() {}
    explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) 
      : _M_ptr(__x) {}
    _Result operator()(_Arg1 __x, _Arg2 __y) const {
      return _M_ptr(__x, __y);
    }
};

template <class _Arg1, class _Arg2, class _Result>
inline pointer_to_binary_function<_Arg1,_Arg2,_Result> 
ptr_fun(_Result (*__x)(_Arg1, _Arg2)) {
  return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__x);
}

// identity is an extensions: it is not part of the standard.
template <class _Tp>
struct _Identity : public unary_function<_Tp,_Tp> {
  const _Tp& operator()(const _Tp& __x) const { return __x; }
};

template <class _Tp> struct identity : public _Identity<_Tp> {};

// select1st and select2nd are extensions: they are not part of the standard.
template <class _Pair>
struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> {
  const typename _Pair::first_type& operator()(const _Pair& __x) const {
    return __x.first;
  }
};

template <class _Pair>
struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type>
{
  const typename _Pair::second_type& operator()(const _Pair& __x) const {
    return __x.second;
  }
};

template <class _Pair> struct select1st : public _Select1st<_Pair> {};
template <class _Pair> struct select2nd : public _Select2nd<_Pair> {};

// project1st and project2nd are extensions: they are not part of the standard
template <class _Arg1, class _Arg2>
struct _Project1st : public binary_function<_Arg1, _Arg2, _Arg1> {
  _Arg1 operator()(const _Arg1& __x, const _Arg2&) const { return __x; }
};

template <class _Arg1, class _Arg2>
struct _Project2nd : public binary_function<_Arg1, _Arg2, _Arg2> {
  _Arg2 operator()(const _Arg1&, const _Arg2& __y) const { return __y; }
};

template <class _Arg1, class _Arg2> 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
94色蜜桃网一区二区三区| 精品国产亚洲在线| 日韩写真欧美这视频| 国产精品私房写真福利视频| 午夜免费欧美电影| 91在线精品一区二区三区| 欧美一区二区三区系列电影| |精品福利一区二区三区| 国产精品一区二区不卡| 日韩免费一区二区三区在线播放| 亚洲人成精品久久久久| 国产一区亚洲一区| 日韩三级免费观看| 日韩av电影天堂| 欧美性色aⅴ视频一区日韩精品| 国产精品日日摸夜夜摸av| 国产一区二区三区四区五区入口 | 欧美久久一二区| 亚洲精品欧美二区三区中文字幕| 粉嫩一区二区三区性色av| 精品日韩欧美在线| 麻豆精品国产传媒mv男同| 91.com视频| 天堂va蜜桃一区二区三区| 欧美无乱码久久久免费午夜一区| 亚洲日本青草视频在线怡红院| 国产成人免费高清| 中文字幕免费不卡| 成人激情电影免费在线观看| 国产嫩草影院久久久久| 国产老妇另类xxxxx| 日本一区二区三区国色天香 | av中文字幕不卡| 国产欧美一区二区三区沐欲 | 欧美国产一区视频在线观看| 国产一区在线看| 久久久久久久久久久久久夜| 久久aⅴ国产欧美74aaa| 日韩精品一区二区三区在线播放| 美女一区二区三区| 久久色在线观看| 成人动漫一区二区三区| 亚洲一区在线视频| 日韩欧美一区二区久久婷婷| 国内成人精品2018免费看| 久久久亚洲国产美女国产盗摄 | 麻豆精品在线播放| 日韩精品中文字幕在线一区| 久久99精品国产| 国产欧美日产一区| 一本一道久久a久久精品| 亚洲成在人线在线播放| 欧美大片国产精品| 成人国产在线观看| 亚洲自拍都市欧美小说| 日韩精品一区二区三区中文不卡 | 亚洲女同ⅹxx女同tv| 欧美三级欧美一级| 韩国三级电影一区二区| 欧美国产丝袜视频| 色诱视频网站一区| 蜜臀久久99精品久久久久久9| 中文字幕精品一区| 3atv一区二区三区| 成人午夜电影久久影院| 一区二区三区成人| 久久久欧美精品sm网站| 欧美专区日韩专区| 国产在线播精品第三| 亚洲狼人国产精品| 欧美α欧美αv大片| 99久久综合狠狠综合久久| 美女mm1313爽爽久久久蜜臀| 国产精品久久久久久久久晋中 | 91福利国产成人精品照片| 奇米777欧美一区二区| 综合久久综合久久| 日韩午夜精品视频| 91久久香蕉国产日韩欧美9色| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品欧美激情| 日本一区二区三区四区| 欧美岛国在线观看| 色播五月激情综合网| 国产毛片精品一区| 亚洲午夜一区二区| 又紧又大又爽精品一区二区| 精品国产亚洲在线| 欧美日韩国产123区| 成人h版在线观看| 久久成人久久爱| 亚洲444eee在线观看| 亚洲欧美另类小说| 国产欧美日韩三级| 久久婷婷国产综合精品青草| 欧美一区二区三区免费视频 | 亚洲成人中文在线| 亚洲裸体在线观看| 国产精品日韩精品欧美在线| 亚洲精品一区二区三区四区高清| 91在线观看成人| 波多野结衣在线一区| 国产在线一区二区| 精品一区二区三区日韩| 日本欧美一区二区| 丝袜脚交一区二区| 秋霞电影一区二区| 麻豆精品在线视频| 九九精品一区二区| 黄页网站大全一区二区| 91精品福利在线| 一本色道**综合亚洲精品蜜桃冫| av激情综合网| 日本精品裸体写真集在线观看| 99在线热播精品免费| 99视频一区二区| 91蜜桃视频在线| 欧美视频中文字幕| 7777精品伊人久久久大香线蕉超级流畅| 色播五月激情综合网| 欧美特级限制片免费在线观看| 欧美日韩精品系列| 欧美一区二区视频在线观看2022| 91精品国产综合久久小美女| 日韩午夜中文字幕| 国产日韩综合av| 综合精品久久久| 亚洲午夜激情网站| 精品中文字幕一区二区小辣椒| 极品少妇xxxx偷拍精品少妇| 国产伦精品一区二区三区免费迷| www.欧美.com| 欧美日韩中字一区| 日韩欧美国产综合一区| 国产精品色婷婷| 亚洲成av人在线观看| 国内精品伊人久久久久av影院| 成人激情校园春色| 欧美在线看片a免费观看| 欧美成人a∨高清免费观看| 欧美激情在线看| 亚洲五码中文字幕| 国产成人免费在线| 91国产成人在线| 久久久噜噜噜久噜久久综合| 一区二区三区不卡在线观看 | 精品美女被调教视频大全网站| 久久色.com| 亚洲一区二区在线视频| 久久er精品视频| 91国产福利在线| 久久影院午夜论| 一区二区三区欧美亚洲| 久久99国内精品| 欧美日免费三级在线| 26uuu精品一区二区| 亚洲最快最全在线视频| 国产一区在线观看麻豆| 欧美日韩国产a| 亚洲欧洲99久久| 激情图片小说一区| 欧美图片一区二区三区| 中文一区在线播放| 蜜臀国产一区二区三区在线播放| 成人av免费在线观看| 日韩欧美高清dvd碟片| 亚洲线精品一区二区三区八戒| 国产精品99久久久久久宅男| 欧美一区三区二区| 亚洲精品写真福利| 国产精品99久久久久久似苏梦涵| 欧美精品v国产精品v日韩精品| 国产精品免费aⅴ片在线观看| 美女视频黄a大片欧美| 欧美午夜精品久久久久久孕妇 | 欧美系列在线观看| 中文字幕一区二区三区在线播放| 精品一区二区三区免费毛片爱| 欧美性猛交xxxx乱大交退制版| 国产精品美女久久久久aⅴ| 久久国产日韩欧美精品| 91麻豆精品91久久久久同性| 亚洲综合丝袜美腿| 91麻豆免费看片| 综合久久久久综合| 成人av免费网站| 国产精品成人一区二区艾草| 国产剧情一区二区三区| 精品免费国产二区三区| 激情综合五月天| 26uuu精品一区二区| 久久国产精品免费| 日韩欧美亚洲国产精品字幕久久久| 亚洲成人免费在线观看| 欧美日韩和欧美的一区二区| 亚洲午夜电影在线| 欧美精品丝袜中出| 美女www一区二区| 精品国产一区二区三区久久影院 | 奇米精品一区二区三区在线观看一|