Re: [Linux-programlama] 2 bitlik değişken tanımlama

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Caner (ckurt@tasarimnoktasi.com)
Date: Sat 27 Aug 2005 - 18:11:19 EEST


  Size daha önce hazırladıığım(özel string optimizasyonu yapan) bi' sınıfı yolluyorum,
biraz elden geçirirseniz işinizi görüceğini zannediyorum. Ancak bence bilimsel
kitaplıkları araştırmanızda fayda var, tahminimce vardır.
  Ayrıca bu sınıfı kullanmaktan vazgeçtiğim için, optimizasyonu tamamlanmış değil,
o yüzden biraz gözden geçirmenizi öneririm. Ayrıca tamamen ham olduğu için ve projenin
içine taşınmadığı pekçok '*' gibi literaller var, o yüzden üzerine bayağı çalışmanız gerekiyor.
  Bu sınıfa ne yapmanız gerektiğine gelince, önce mask_'ı buffer olarak kullanıp her onaltı girdinin
ardından vector'e ekleyin, tabii char mask_'ı char yapıp isminide değiştirebilirsiniz, ancak bence
int olarak kalmasında yarar var.

        #include <vector>

        class mask
        {
        public:
                mask()
                        : mask_(0)
                {
                }
                void push(char item)
                {
                        if(item == '*')
                                mask_ = mask_ << 1;
                        else
                        {
                                mask_ = (mask_ << 1) | 1;
                                chars_.push_back(item);
                        }

                        ++len_;
                }

                char pop()
                {
                        char res = '*';

                        if(mask_ & 1)
                        {
                                std::vector<char>::iterator begin = chars_.begin();
                                res = *begin;
                                chars_.erase(begin);
                        }

                        mask_ = mask_ >> 1;

                        return res;
                }

                int length()
                {
                        return len_;
                }
        private:
                std::vector<char> chars_;
                unsigned int mask_;
                int len_;
        };

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.