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

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

?? huf_service.h

?? huffman_template_algorithm.zip
?? H
字號:
// ==============================================================
//
//  Copyright (c) 1999-2001 by Alex Vinokur.  This work and all works
//  derived from it may be copied and modified without any
//  restrictions other than that a copy of this copyright notice
//  must be included in any copy of this work or any derived work.
//
// ==============================================================

///////////////////////////////////////

#ifndef huf_service_H
#define huf_service_H

///////////////////////////////////////

static char id_huf_service_H[] = "@(#)## n-ary Huffman Template Algorithm ## Author : Alex Vinokur ## "__FILE__;

// ##############################################################
// =============================
//  n-ary Huffman Template Algorithm
//  The algorithm (program) contains the following files :
//  - huf_service.H
//  - huf_class.H
//  - huf_methods.H
//  - huf_main.C
// =============================
//
//  FILE : huf_service.H
//
//  AUTHOR : Alex Vinokur
//
//  DESCRIPTION :
//         Definition and implementation
//         of the following auxiliary template functions : 
//         ----------------------------------------------
//         - string             to_str (...)
//         - void               add_to_vector (...)
//         - void               fill_vector (...)
//         - unsigned int       get_width (...)
//         - string             gstr_vect_ptrs (...)
//         - string             gstr_vector (...)       // two functions
//         - string             gstr_path (...)
//         - string             gstr_map (...)
//         - ostream&           operator<< (...)        // two operators
//         ----------------------------------------------
//
//  DATE           VERSION
//  ----           -------
//  Aug-26-1999    NHTA 1.0
//  Jul-05-2001    NHTA 1.1
//  Sep-11-2001    NHTA 1.2
//
// ##############################################################


#include <strstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <algo.h>
#include <functional>
#include <iostream>
#include <fstream.h>
#include <typeinfo>
#include <iomanip.h>
#include <assert.h>


//#######################################################
//##### PART : DEFINES & CONSTANTS ######################
//#######################################################

#define MIN_VALUE(x,y)  ((x) < (y) ? (x) : (y))
#define MAX_VALUE(x,y)  ((x) > (y) ? (x) : (y))
#define ASSERT(x)       if (!(x)) {cerr << endl << endl << "\t=== BUG IN PROGRAM ===" << endl;}; assert (x)

#define FATAL_TITLE     "FATAL ERROR : "
#define FATAL_SHIFT     "            : "
#define FATAL_MSG(x)    cerr << endl \
                             << FATAL_TITLE \
                             << x \
                             << endl \
                             << FATAL_SHIFT \
                             << "File - " \
                             << __FILE__ \
                             << ", Line#" \
                             << __LINE__ \
                             << endl; \
                             exit (1)


#define ERROR_TITLE     "ERROR : "
#define ERROR_SHIFT     "      : "
#define ERROR_MSG(x)    cerr << endl \
                             << ERROR_TITLE \
                             << x \
                             << endl \
                             << ERROR_SHIFT \
                             << "File - " \
                             << __FILE__ \
                             << ", Line#" \
                             << __LINE__ \
                             << endl;


//#######################################################
//##### PART : typedefs #################################
//#######################################################
typedef unsigned int    CODE;



//#######################################################
//##### PART : FUNCTIONS ################################
//#######################################################


//#####################################################3
template <typename T>
string to_str (T value_i, int width_i = -1, char fill_i = ' ', const string& prefix_i = string ())
{
string          ret_stringValue;
strstream       tmp_strstream;

        //=================================
        if (width_i > 0)
        {
                tmp_strstream.width (width_i);
                tmp_strstream.fill (fill_i);
        }
        tmp_strstream << prefix_i;
        tmp_strstream << value_i;

        //=================================
        tmp_strstream << ends;
        ret_stringValue = tmp_strstream.str();
        tmp_strstream.rdbuf()->freeze (0);
        //=================================
        return ret_stringValue;
} // string to_str (T value_i)



//#####################################################3
template <typename T>
void add_to_vector (vector<T>& vector_i, const basic_string<T>& string_i)
{
        copy (string_i.begin (), string_i.end (), back_inserter (vector_i));
} //void add_to_vector (T value_o)



//#####################################################3
template <typename T>
void fill_vector (vector<T>& vector_i, const basic_string<T>& string_i)
{
        vector_i = vector<T> ();
        add_to_vector (vector_i, string_i);
} //void fill_vector (T value_o)




//#####################################################3
template <typename T>
unsigned int get_width (T value_i)
{
unsigned int    ret_intValue;
strstream       tmp_strstream;

        tmp_strstream << value_i;

        //=================================
        tmp_strstream << ends;
        ret_intValue = string (tmp_strstream.str()).size ();
        tmp_strstream.rdbuf()->freeze (0);
        //=================================
        return ret_intValue;
} // unsigned int get_width (T value_i)



//#####################################################
template <typename T1>
string   gstr_vect_ptrs (const vector<T1*>& vector_i, const string& delimiter_i = "")
{
strstream               tmp_strstream;
string                  tmp_string;
unsigned int            cur_index;

        cout << delimiter_i << endl;
        for (cur_index = 0; cur_index < vector_i.size (); cur_index++)
        {
                cout << "vector element ["
                     << cur_index << "] : "
                     << (*(vector_i [cur_index]))
                     << delimiter_i
                     << endl;
        }


        tmp_strstream << ends;
        tmp_string = tmp_strstream.str(); tmp_strstream.rdbuf()->freeze (0);

        //===================
        return tmp_string;

} // gstr_vect_ptrs (const vector<CODE>& vector_i)



//#####################################################
template <typename T1>
string   gstr_vector (const vector<T1>& vector_i, unsigned int start_pos_i = 0, unsigned int end_pos_i = UINT_MAX, const string& delimiter_i = "")
{

        if (vector_i.empty ())
        {
                return "Empty Vector";
        }
        //=====================================
        if (end_pos_i == UINT_MAX)
        {
                end_pos_i = vector_i.size () - 1;
        }
        ASSERT (end_pos_i < vector_i.size ());
        ASSERT (start_pos_i <= end_pos_i);
        //=====================================

strstream               tmp_strstream;
string                  tmp_string;
ostream_iterator<T1>    out (tmp_strstream, delimiter_i.c_str ());

        copy (vector_i.begin () + start_pos_i, vector_i.begin () + end_pos_i + 1, out);

        tmp_strstream << ends;
        tmp_string = tmp_strstream.str(); tmp_strstream.rdbuf()->freeze (0);

        //===================
        return tmp_string;

} // gstr_vector (const vector<CODE>& vector_i)



//#####################################################
template <typename T1>
ostream& operator<< (ostream& o, const vector<T1>& vector_i)
{
        return o << gstr_vector (vector_i);
}


//#####################################################
template <typename T1>
string   gstr_vector (const vector<T1>& vector_i, const string& delimiter_i, unsigned int start_pos_i = 0, unsigned int end_pos_i = UINT_MAX)
{
        return gstr_vector (vector_i, start_pos_i, end_pos_i, delimiter_i);
} // string   gstr_vector - 2


//#####################################################
template <unsigned int ARY>
string   gstr_path (const vector<CODE>& path_i)
{
const string    delimiter_CNS = (ARY > 16) ? "." : "";
strstream       tmp_strstream;
string          tmp_string;

        if (path_i.empty ())
        {
                tmp_strstream << "This is Huffman Tree Root";
        }
        else
        {
                for (unsigned int cur_index = 0; cur_index < path_i.size (); cur_index++)
                {
                        if (cur_index > 0)
                        {
                                tmp_strstream << delimiter_CNS;
                        }
                        tmp_strstream << path_i [cur_index];
                }
        }
        //=====================================
        tmp_strstream << ends;
        tmp_string = tmp_strstream.str(); tmp_strstream.rdbuf()->freeze (0);

        //===================
        return tmp_string;

} // gstr_path (const vector<CODE>& path_i)




//#######################################
template <typename T1, typename T2>
string gstr_map (const map<T1, T2, less<T1> >& map_i, const string &shift_i = string ())
{
strstream       tmp_strstream;
string          tmp_string;

        tmp_strstream << endl;
        tmp_strstream << endl;
        tmp_strstream << shift_i;
        tmp_strstream << "\tmap size = "
                      << map_i.size ()
                      << endl;

map<T1, T2, less<T1> >::const_iterator  cur_const_iter;
        for (cur_const_iter = map_i.begin(); !(cur_const_iter == map_i.end()); cur_const_iter++)
        {
                tmp_strstream << shift_i;
                tmp_strstream << "map element ["
                              << (*cur_const_iter).first
                              << "] = "
                              << "<"
                              << (*cur_const_iter).second
                              << ">";
                tmp_strstream << endl;
        }
        tmp_strstream << ends;
        tmp_string = tmp_strstream.str(); tmp_strstream.rdbuf()->freeze (0);

        return tmp_string;

} // string gstr_map



//#######################################
template <typename T1, typename T2>
ostream& operator<<(ostream &str_o, const map<T1, T2, less<T1> >& map_i)
{
        return str_o << gstr_map (map_i);

} // ostream& operator<<(ostream &str_o, const map<T1>& map_i)


#endif	// huf_service_H


//#######################################################
//################ END OF FILE ##########################
//####################################################### 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日精品一区视频| 国产久卡久卡久卡久卡视频精品| 成人免费黄色在线| 国产欧美日韩激情| 不卡影院免费观看| 一区二区三区小说| 欧美日韩中文字幕一区| 久久精品一级爱片| 国产成人在线看| 亚洲视频在线一区| 欧美视频一区二区三区在线观看 | 中文av一区特黄| av不卡在线播放| 亚洲va欧美va人人爽午夜| 91精品国产91久久综合桃花| 久久aⅴ国产欧美74aaa| 国产午夜精品久久久久久免费视| 色综合久久99| 久久精品久久精品| 亚洲天堂久久久久久久| 91精品国产综合久久婷婷香蕉| 国产一区二区不卡| 亚洲最大色网站| 日韩一区二区在线看片| 波多野结衣在线aⅴ中文字幕不卡| 亚洲一区二区视频| 久久理论电影网| 色欧美片视频在线观看在线视频| 麻豆国产一区二区| 最新热久久免费视频| 7777精品伊人久久久大香线蕉完整版 | 欧美日韩精品一区二区三区| 另类中文字幕网| 亚洲精品一二三区| 精品国产免费一区二区三区香蕉| 91麻豆swag| 国产乱一区二区| 天天综合天天综合色| 国产精品白丝在线| 日韩精品一区二区三区在线观看| 91亚洲精品乱码久久久久久蜜桃| 久久精品国产精品亚洲精品| 亚洲精品视频一区| 国产日韩欧美精品在线| 日韩一区二区在线看| 色狠狠一区二区三区香蕉| 国产精品综合网| 奇米色一区二区三区四区| 一区二区三区成人| 国产精品免费看片| 久久久久国色av免费看影院| 欧美高清hd18日本| 色94色欧美sute亚洲13| av一区二区三区四区| 国产一区二区三区美女| 麻豆国产精品官网| 日韩中文字幕区一区有砖一区| 亚洲欧美日韩中文播放| 国产精品久久久久一区二区三区共| 欧美xingq一区二区| 6080日韩午夜伦伦午夜伦| 91美女福利视频| 成人精品在线视频观看| 国产精品66部| 韩国一区二区在线观看| 久久丁香综合五月国产三级网站| 日日夜夜精品免费视频| 亚洲图片欧美综合| 亚洲综合免费观看高清完整版 | 欧美精品色一区二区三区| 色综合色综合色综合| 99精品欧美一区二区蜜桃免费| 国产盗摄一区二区三区| 国产mv日韩mv欧美| 成人深夜视频在线观看| 国产成人亚洲综合a∨猫咪| 国产一区二区精品久久99| 另类小说图片综合网| 激情偷乱视频一区二区三区| 精品一区二区三区在线观看国产| 麻豆精品在线看| 国产一区二区三区在线看麻豆| 精品一区二区三区视频在线观看| 伦理电影国产精品| 国产成人午夜精品影院观看视频 | 日韩成人一区二区三区在线观看| 天天综合色天天综合| 三级久久三级久久| 加勒比av一区二区| 国产成人精品三级| 91免费观看视频| 欧美日韩国产欧美日美国产精品| 91精品国产高清一区二区三区蜜臀 | 99久久国产综合精品女不卡| 91蝌蚪porny九色| 欧美色图一区二区三区| 555夜色666亚洲国产免| 精品成人免费观看| 中文字幕一区二区三区不卡在线 | 91精品国产高清一区二区三区 | 亚洲成va人在线观看| 日本中文字幕一区二区视频| 狠狠色狠狠色综合| 成年人网站91| 欧美日本乱大交xxxxx| 精品日韩99亚洲| 国产精品国产自产拍高清av | 欧美大片在线观看一区二区| 久久色成人在线| 中文字幕视频一区| 日韩av一区二区三区四区| 国产精品一区一区三区| 91成人免费在线| 久久影音资源网| 一区二区三区四区视频精品免费| 蜜臀av性久久久久蜜臀av麻豆| 成人午夜精品在线| 7777精品伊人久久久大香线蕉| 国产亚洲一区二区三区四区| 亚洲视频你懂的| 精品一区二区三区免费| 99riav久久精品riav| 日韩久久精品一区| 亚洲男人天堂一区| 狠狠色丁香久久婷婷综合_中| 成人va在线观看| 日韩欧美一区二区免费| 亚洲乱码国产乱码精品精小说| 美女一区二区在线观看| 91黄视频在线| 国产精品全国免费观看高清 | 秋霞午夜鲁丝一区二区老狼| 成人黄色在线看| 日韩精品在线一区| 亚洲国产wwwccc36天堂| 本田岬高潮一区二区三区| 日韩女优av电影在线观看| 一区二区在线观看视频| 福利91精品一区二区三区| 欧美一区二区精品久久911| 亚洲精品免费在线播放| 国产成人综合亚洲网站| 欧美一级黄色录像| 亚洲国产色一区| 91免费在线看| 中文字幕在线免费不卡| 国产精品 日产精品 欧美精品| 91精品国产91久久久久久最新毛片| 亚洲日本青草视频在线怡红院 | 蜜桃视频一区二区| 欧美日韩mp4| 亚洲国产精品嫩草影院| 91亚洲国产成人精品一区二区三 | 精品国产凹凸成av人网站| 三级欧美韩日大片在线看| 欧美亚洲日本一区| 一区二区三区国产| 欧美日韩国产在线播放网站| 一级中文字幕一区二区| 91视频免费看| 亚洲天堂中文字幕| 91女厕偷拍女厕偷拍高清| 国产精品乱码一区二区三区软件 | 777欧美精品| 日韩精品欧美精品| 国产欧美一区二区精品性色超碰 | 日韩国产精品久久久| 欧美剧在线免费观看网站| 亚洲综合一区二区三区| 成人一道本在线| 欧美日韩成人综合在线一区二区| 成人欧美一区二区三区视频网页| 成人激情午夜影院| 1024成人网| 色狠狠一区二区三区香蕉| 一区二区欧美视频| 欧美日韩一区成人| 亚洲电影视频在线| 制服.丝袜.亚洲.中文.综合| 蜜臀a∨国产成人精品| 精品国产123| 成人激情av网| 亚洲午夜一区二区| 51精品国自产在线| 久久99国产精品麻豆| 久久久久久影视| 成人免费毛片高清视频| 亚洲精品日韩专区silk| 欧美精品aⅴ在线视频| 九九在线精品视频| 日本一二三不卡| 欧美中文一区二区三区| 日韩在线a电影| 久久精品夜色噜噜亚洲aⅴ| 96av麻豆蜜桃一区二区| 亚洲成人av资源| 久久亚洲精品国产精品紫薇| 99国产精品一区| 性欧美疯狂xxxxbbbb| av一二三不卡影片|