• <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>
            posts - 183,  comments - 10,  trackbacks - 0
             




            博客重定向至


            http://www.cnblogs.com/unixfy




            posted @ 2013-09-14 23:49 unixfy 閱讀(257) | 評論 (0)編輯 收藏
            STL algorithm 中的 lower_bound and upper_bound

            lower_bound 返回的結果 >= 參數 value
            upper_bound 返回的結果 > 參數 value

            具體明細可參見百科
            lower_bound:http://baike.baidu.cn/view/4720650.htm
            upper_bound:http://baike.baidu.cn/view/4163451.htm

            測試代碼:
             1 #include <iostream>
             2 #include <set>
             3 #include <algorithm>
             4 using namespace std;
             5 
             6 int main()
             7 {
             8     set<int> si;
             9     //cout << si.insert(3) << endl;
            10     cout << *(si.insert(3).first) << endl;
            11     
            12     for (int i = 1; i <= 10; i += 2)
            13     {
            14         si.insert(i);
            15     }
            16     for (set<int>::const_iterator cit = si.begin(); cit != si.end(); ++cit)
            17     {
            18         cout << *cit << ' ';
            19     }
            20     cout << endl;
            21     
            22     cout << endl;
            23     cout << *lower_bound(si.begin(), si.end(), 3<< endl;
            24     cout << *lower_bound(si.begin(), si.end(), 4<< endl;
            25     cout << *lower_bound(si.begin(), si.end(), 5<< endl;
            26     cout << *lower_bound(si.begin(), si.end(), 6<< endl;
            27     
            28     cout << endl;
            29     cout << *upper_bound(si.begin(), si.end(), 3<< endl;
            30     cout << *upper_bound(si.begin(), si.end(), 4<< endl;
            31     cout << *upper_bound(si.begin(), si.end(), 5<< endl;
            32     cout << *upper_bound(si.begin(), si.end(), 6<< endl;
            33     
            34     system("PAUSE");
            35 }
            36 

            輸出:

            3
            1 3 5 7 9

            3
            5
            5
            7

            5
            5
            7
            7


            posted @ 2013-05-30 20:55 unixfy 閱讀(626) | 評論 (0)編輯 收藏
             1 class CounterList(list):
             2     def __init__(self, *args):
             3         super(CounterList, self).__init__(*args)
             4         self.counter = 0
             5 
             6     def __getitem__(self, index):
             7         self.counter += 1
             8         return super(CounterList, self).__getitem__(index)
             9 
            10 
            11 cl = CounterList(range(10))
            12 print(cl)
            13 cl.reverse()
            14 print(cl)
            15 del(cl[3:6])
            16 print(cl)
            17 print(cl.counter)
            18 cl[4+ cl[2]
            19 print(cl.counter)

            輸出:
            >>>
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
            [9, 8, 7, 3, 2, 1, 0]
            0
            2
            posted @ 2013-05-21 22:14 unixfy 閱讀(147) | 評論 (0)編輯 收藏
             1 def checkIndex(key):
             2     if not isinstance(key, (int,)):
             3         raise TypeError
             4     if key < 0:
             5         raise IndexError
             6 
             7 class ArithmeticSequence:
             8     def __init__(self, start = 0, step = 1):
             9         self.start = start
            10         self.step  = step
            11         self.changed = {}
            12 
            13     def __getitem__(self, key):
            14 
            15         checkIndex(key)
            16 
            17         print('__getitem__')
            18 
            19         try:
            20             return self.changed[key]
            21         except KeyError:
            22             return self.start + key * self.step
            23 
            24     def __setitem__(self, key, value):
            25 
            26         checkIndex(key)
            27 
            28         print('__setitem__')
            29 
            30         self.changed[key] = value
            31 
            32 
            33 = ArithmeticSequence(12)
            34 print(s[4])
            35 s[4= 2
            36 print(s[4])
            37 print(s[5])
            38 s[3= 100
            39 print(s[3])
            40 s.__setitem__(1003)
            41 print(s.__getitem__(100))

            輸出:
            >>>
            __getitem__
            9
            __setitem__
            __getitem__
            2
            __getitem__
            11
            __setitem__
            __getitem__
            100
            __setitem__
            __getitem__
            3
            posted @ 2013-05-21 22:03 unixfy 閱讀(245) | 評論 (0)編輯 收藏
             1 class Filter:
             2     def init(self):
             3         self.blocked = []
             4     def filter(self, sequence):
             5         return [x for x in sequence if x not in self.blocked]
             6 
             7 class SPAMFilter(Filter): # SPAMFilter 是 Filter 的子類
             8     def init(self):
             9         self.blocked = ['SPAM']
            10 
            11 = Filter()
            12 f.init()
            13 print(f.filter([123]))
            14 
            15 = SPAMFilter()
            16 s.init()
            17 print(s.filter(['SPAM''SPAM''SPAM''SPAM''eggs''bacon''SPAM']))

            輸出:
            >>>
            [1, 2, 3]
            ['eggs', 'bacon']
            posted @ 2013-05-19 11:39 unixfy 閱讀(349) | 評論 (0)編輯 收藏
             1 class MemberCounter:
             2     member = 0
             3     def init(self):
             4         self.member += 1
             5         MemberCounter.member += 1
             6 
             7 m1 = MemberCounter()
             8 m1.init()
             9 print(m1.member)
            10 print(MemberCounter.member)
            11 
            12 m2 = MemberCounter()
            13 m2.init()
            14 print(m2.member)
            15 print(MemberCounter.member)
            16 
            17 print(m1.member is m2.member)
            18 print(m1.member is MemberCounter.member)
            19 print(m2.member is MemberCounter.member)
            20 
            21 m3 = MemberCounter()
            22 m3.init()
            23 print(m3.member)
            24 print(MemberCounter.member)
            25 print(m2.member is MemberCounter.member)
            26 
            27 print(m1.member)
            28 print(MemberCounter.member)

            輸出:
            >>>
            1
            1
            2
            2
            False
            False
            True
            3
            3
            False
            1
            3
            posted @ 2013-05-18 16:43 unixfy 閱讀(430) | 評論 (0)編輯 收藏
             1 __metaclass__ = type # 確定使用新式類
             2 
             3 class Person:
             4 
             5     def setName(self, name):
             6         self.name = name
             7 
             8     def getName(self):
             9         return self.name
            10 
            11     def greet(self):
            12         print("Hello, world! I'm %s." % self.name)
            13 
            14     def __foo(self):
            15         print("FOO", self.name)
            16     def _bar(self):
            17         print("BAR", self.name)
            18 
            19 
            20 foo = Person()
            21 bar = Person()
            22 foo.setName('Luke Skywalker')
            23 bar.setName('Anakin Skywalker')
            24 foo.greet()
            25 bar.greet()
            26 Person.greet(bar)
            27 
            28 # foo.__foo()
            29 foo._Person__foo()
            30 foo._bar()
            31 # foo._Person_bar()

            輸出:
            >>>
            Hello, world! I'm Luke Skywalker.
            Hello, world! I'm Anakin Skywalker.
            Hello, world! I'm Anakin Skywalker.
            FOO Luke Skywalker
            BAR Luke Skywalker
            posted @ 2013-05-18 16:31 unixfy 閱讀(349) | 評論 (0)編輯 收藏
             1 def my_range_2(start, stop = None, step = 1):
             2     if stop == None:
             3         if start > 0:
             4             start, stop = 0, start
             5         else:
             6             start, stop = start, 0
             7     result = []
             8     if step > 0 and start < stop:
             9         i = start
            10         while (i < stop):
            11             result.append(i)
            12             i += step
            13     elif step < 0 and start > stop:
            14         i = start
            15         while i > stop:
            16             result.append(i)
            17             i += step
            18     return result
            19 
            20 print(my_range_2(10))
            21 print(my_range_2(5202))
            22 print(my_range_2(110))
            23 print(my_range_2(10, 0, -1))
            24 print(my_range_2(100, 0, -9))
            25 print(my_range_2(1020-5))
            26 
            27 print(my_range_2(100, 0, -10))
            28 print(my_range_2(-10))
            29 print(my_range_2(-10-51))
            30 print(my_range_2(-10-201))
            31 print(my_range_2(-50-45))

            >>>
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
            [5, 7, 9, 11, 13, 15, 17, 19]
            [1, 2, 3, 4, 5, 6, 7, 8, 9]
            [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
            [100, 91, 82, 73, 64, 55, 46, 37, 28, 19, 10, 1]
            []
            [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
            [-10, -9, -8, -7, -6, -5, -4, -3, -2, -1]
            [-10, -9, -8, -7, -6]
            []
            [-50, -49, -48, -47, -46]
            posted @ 2013-05-18 14:32 unixfy 閱讀(273) | 評論 (0)編輯 收藏
             1 def search(sequence, number, lower = 0, upper = None):
             2     if upper is None:
             3         upper = len(sequence) - 1
             4     if lower == upper:
             5         assert(number == sequence[upper])
             6         return upper
             7     else:
             8         middle = (lower + upper) // 2
             9         if number > sequence[middle]:
            10             return search(sequence, number, middle + 1, upper)
            11         else:
            12             return search(sequence, number, lower, middle)
            13 
            14 seq = [34678123410095]
            15 print(seq)
            16 seq.sort()
            17 print(seq)
            18 print(search(seq, 34))
            19 print(search(seq, 100))

            輸出:
            [34, 67, 8, 123, 4, 100, 95]
            [4, 8, 34, 67, 95, 100, 123]
            2
            5
            posted @ 2013-05-16 22:24 unixfy 閱讀(337) | 評論 (0)編輯 收藏
             1 def multiplier(factor):
             2     def multiply_by_factor(number):
             3         return number * factor
             4     return multiply_by_factor
             5 
             6 
             7 double = multiplier(2# factor = 2
             8 print(double(5))       # number = 5
             9 triple = multiplier(3# factor = 3
            10 print(triple(4))       # number = 4
            11 print(multiplier(5)(4))# factor = 5, number = 4

            輸出:
            >>>
            10
            12
            20
            posted @ 2013-05-16 21:18 unixfy 閱讀(172) | 評論 (0)編輯 收藏
            僅列出標題
            共19頁: 1 2 3 4 5 6 7 8 9 Last 
            久久夜色精品国产亚洲| 99久久精品费精品国产一区二区| 国产精品美女久久久m| 亚洲人成无码www久久久| 精品国产青草久久久久福利| 精品久久一区二区三区| 久久精品国产91久久综合麻豆自制| 一本色综合网久久| 久久热这里只有精品在线观看| 香蕉久久AⅤ一区二区三区| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久亚洲精品无码AV红樱桃| 欧美日韩精品久久久免费观看| 亚洲欧美精品一区久久中文字幕| 性高朝久久久久久久久久| 亚洲国产成人久久一区WWW| 国产精品久久新婚兰兰| 国产激情久久久久久熟女老人 | 国产成年无码久久久久毛片| 久久久久久人妻无码| 91精品国产综合久久婷婷| 一本大道久久a久久精品综合| 久久国产美女免费观看精品| 亚洲成av人片不卡无码久久| 7777久久久国产精品消防器材| 国产一级持黄大片99久久| 青青草原综合久久| 狠狠色丁香久久婷婷综合图片| 午夜天堂精品久久久久| 国内精品久久久久| 午夜精品久久影院蜜桃| 亚洲AV无码久久精品狠狠爱浪潮 | 亚洲精品国产美女久久久| 日韩人妻无码一区二区三区久久| 国内精品久久久久久99| 久久93精品国产91久久综合| 亚洲乱码精品久久久久..| 九九久久精品国产| 亚洲AV无一区二区三区久久| 国产免费久久精品丫丫| 久久婷婷五月综合国产尤物app|