• <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>

            C++ Programmer's Cookbook

            {C++ 基礎(chǔ)} {C++ 高級(jí)} {C#界面,C++核心算法} {設(shè)計(jì)模式} {C#基礎(chǔ)}

            alloc和一些數(shù)許函數(shù)

            這是干嗎用的那?指點(diǎn)指點(diǎn)???越詳細(xì)越好啊啊??!謝謝!?。。。?!

            -------------------
            h:

            #include <limits>
            #include <iostream>

            namespace MyLib {
               template <class T>
               class MyAlloc {
                 public:
                   // type definitions
                   typedef T        value_type;
                   typedef T*       pointer;
                   typedef const T* const_pointer;
                   typedef T&       reference;
                   typedef const T& const_reference;
                   typedef std::size_t    size_type;
                   typedef std::ptrdiff_t difference_type;

                   // rebind allocator to type U
                   template <class U>
                   struct rebind {
                       typedef MyAlloc<U> other;
                   };

                   // return address of values
                   pointer address (reference value) const {
                       return &value;
                   }
                   const_pointer address (const_reference value) const {
                       return &value;
                   }

                   /* constructors and destructor
                    * - nothing to do because the allocator has no state
                    */
                   MyAlloc() throw() {
                   }
                   MyAlloc(const MyAlloc&) throw() {
                   }
                   template <class U>
                     MyAlloc (const MyAlloc<U>&) throw() {
                   }
                   ~MyAlloc() throw() {
                   }

                   // return maximum number of elements that can be allocated
                   size_type max_size () const throw() {
                       return std::numeric_limits<std::size_t>::max() / sizeof(T);
                   }

                   // allocate but don't initialize num elements of type T
                   pointer allocate (size_type num, const void* = 0) {
                       // print message and allocate memory with global new
                       std::cerr << "allocate " << num << " element(s)"
                                 << " of size " << sizeof(T) << std::endl;
                       pointer ret = (pointer)(::operator new(num*sizeof(T)));
                       std::cerr << " allocated at: " << (void*)ret << std::endl;
                       return ret;
                   }

                   // initialize elements of allocated storage p with value value
                   void construct (pointer p, const T& value) {
                       // initialize memory with placement new
                       new((void*)p)T(value);
                   }

                   // destroy elements of initialized storage p
                   void destroy (pointer p) {
                       // destroy objects by calling their destructor
                       p->~T();
                   }

                   // deallocate storage p of deleted elements
                   void deallocate (pointer p, size_type num) {
                       // print message and deallocate memory with global delete
                       std::cerr << "deallocate " << num << " element(s)"
                                 << " of size " << sizeof(T)
                                 << " at: " << (void*)p << std::endl;
                       ::operator delete((void*)p);
                   }
               };

               // return that all specializations of this allocator are interchangeable
               template <class T1, class T2>
               bool operator== (const MyAlloc<T1>&,
                                const MyAlloc<T2>&) throw() {
                   return true;
               }
               template <class T1, class T2>
               bool operator!= (const MyAlloc<T1>&,
                                const MyAlloc<T2>&) throw() {
                   return false;
               }
            }

            cpp:
            #include <vector>
            #include "myalloc.hpp"

            int main()
            {
                // create a vector, using MyAlloc<> as allocator
                std::vector<int,MyLib::MyAlloc<int> > v;

                // insert elements
                // - causes reallocations
                v.push_back(42);
                v.push_back(56);
                v.push_back(11);
                v.push_back(22);
                v.push_back(33);
                v.push_back(44);
            }

            ----------------------
            不常見的數(shù)學(xué)咚咚:
            #include <iostream>
            #include <complex>
            using namespace std;

            int main()
            {
                /* complex number with real and imaginary parts
                 * - real part: 4.0
                 * - imaginary part: 3.0
                 */
                complex<double> c1(4.0,3.0);

                /* create complex number from polar coordinates
                 * - magnitude: 5.0
                 * - phase angle: 0.75
                 */
                complex<float> c2(polar(5.0,0.75));

                // print complex numbers with real and imaginary parts
                cout << "c1: " << c1 << endl;
                cout << "c2: " << c2 << endl;

                // print complex numbers as polar coordinates
                cout << "c1: magnitude: " << abs(c1)
                     << " (squared magnitude: " << norm(c1) << ") "
                     <<    " phase angle: " << arg(c1) << endl;
                cout << "c2: magnitude: " << abs(c2)
                     << " (squared magnitude: " << norm(c2) << ") "
                     <<    " phase angle: " << arg(c2) << endl;

                // print complex conjugates
                cout << "c1 conjugated:  " << conj(c1) << endl;
                cout << "c2 conjugated:  " << conj(c2) << endl;

                // print result of a computation
                cout << "4.4 + c1 * 1.8: " << 4.4 + c1 * 1.8 << endl;

                /* print sum of c1 and c2:
                 * - note: different types
                 */
                cout << "c1 + c2:        "
                     << c1 + complex<double>(c2.real(),c2.imag()) << endl;

                // add square root of c1 to c1 and print the result
                cout << "c1 += sqrt(c1): " << (c1 += sqrt(c1)) << endl;
            }

            posted on 2005-12-16 14:36 夢(mèng)在天涯 閱讀(1154) 評(píng)論(1)  編輯 收藏 引用 所屬分類: STL/Boost

            評(píng)論

            # re: alloc和一些數(shù)許函數(shù) 2010-12-12 17:10 lincheung

            #include <complex>是指得復(fù)數(shù),類似於a+bi,其中a是實(shí)數(shù)部分,b是虛數(shù)部分.  回復(fù)  更多評(píng)論   

            公告

            EMail:itech001#126.com

            導(dǎo)航

            統(tǒng)計(jì)

            • 隨筆 - 461
            • 文章 - 4
            • 評(píng)論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1807503
            • 排名 - 5

            最新評(píng)論

            閱讀排行榜

            人妻无码αv中文字幕久久| 精品一区二区久久| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 三级三级久久三级久久| 日韩精品久久无码中文字幕| 国产亚洲色婷婷久久99精品91| 午夜人妻久久久久久久久| 国产精品成人99久久久久| 久久精品国产亚洲沈樵| 久久精品无码专区免费青青| 日韩精品久久久久久免费| 亚洲精品国产字幕久久不卡| 一本色道久久88精品综合| 精品国产青草久久久久福利| 少妇熟女久久综合网色欲| 久久久国产视频| 精品久久久久成人码免费动漫| 欧美久久一级内射wwwwww.| 久久久久久国产精品美女| 亚洲欧美国产日韩综合久久| 久久国产视频网| 狠狠色丁香婷婷久久综合| 亚洲精品乱码久久久久久蜜桃不卡| 久久久久亚洲国产| 亚洲精品乱码久久久久久久久久久久| 国产精品99久久久精品无码| 久久婷婷国产剧情内射白浆| 99久久国产宗和精品1上映| 久久久亚洲欧洲日产国码二区 | 午夜精品久久影院蜜桃| 亚洲午夜久久久久久久久久| 激情伊人五月天久久综合| 91精品婷婷国产综合久久| 热RE99久久精品国产66热| 亚洲精品无码久久久久久| 久久青草国产手机看片福利盒子| 精品久久久久久国产牛牛app| 三级韩国一区久久二区综合| 久久久久亚洲av无码专区| 精品国产婷婷久久久| 欧美熟妇另类久久久久久不卡|