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

            閱讀排行榜

            欧美午夜精品久久久久久浪潮| 久久久久久久国产免费看| 奇米影视7777久久精品人人爽| 波多野结衣久久| 天天久久狠狠色综合| 无码国内精品久久综合88 | 久久久亚洲裙底偷窥综合| 久久精品www人人爽人人| 国产日韩久久免费影院| 少妇久久久久久被弄到高潮| 99久久精品日本一区二区免费| 欧美性大战久久久久久| 国产亚洲综合久久系列| 欧美成人免费观看久久| 国产精品亚洲综合专区片高清久久久 | 亚洲七七久久精品中文国产| 久久综合国产乱子伦精品免费| 久久久久99精品成人片三人毛片 | 久久99国产精品成人欧美| 伊人久久大香线蕉亚洲五月天| 狠狠久久综合伊人不卡| 国产精品久久久久…| 久久香综合精品久久伊人| 色噜噜狠狠先锋影音久久| 国产精品久久久久国产A级| 久久亚洲精品无码aⅴ大香 | 久久笫一福利免费导航| 国产精品一区二区久久精品无码| …久久精品99久久香蕉国产| 久久精品成人欧美大片| 亚洲伊人久久成综合人影院 | 亚洲国产精品无码久久一区二区| 一日本道伊人久久综合影| 久久天天躁狠狠躁夜夜2020老熟妇| 精品久久一区二区三区| 久久亚洲国产中v天仙www| 国产精品美女久久久m| 国产精品久久国产精麻豆99网站| 99久久人妻无码精品系列蜜桃| 成人妇女免费播放久久久| 日本免费一区二区久久人人澡 |