コード例 #1
0
ファイル: wt_int_rlmn.hpp プロジェクト: tb37/sdsl-lite
        //! Swap operator
        void swap(wt_int_rlmn& wt) {
            if (this != &wt) {
                std::swap(m_size, wt.m_size);
                m_bl.swap(wt.m_bl);
                m_bf.swap(wt.m_bf);
                m_wt.swap(wt.m_wt);

                m_bl_rank.swap(wt.m_bl_rank);
                m_bl_rank.set_vector(&m_bl);
                wt.m_bl_rank.set_vector(&(wt.m_bl));
                m_bf_rank.swap(wt.m_bf_rank);
                m_bf_rank.set_vector(&m_bf);
                wt.m_bf_rank.set_vector(&(wt.m_bf));

                m_bl_select.swap(wt.m_bl_select);
                m_bl_select.set_vector(&m_bl);
                wt.m_bl_select.set_vector(&(wt.m_bl));
                m_bf_select.swap(wt.m_bf_select);
                m_bf_select.set_vector(&m_bf);
                wt.m_bf_select.set_vector(&(wt.m_bf));

                m_C.swap(wt.m_C);
                m_C_bf_rank.swap(wt.m_C_bf_rank);
            }
        }
コード例 #2
0
 //! Load method
 void load(std::istream& in) {
     m_char.load(in);
     m_char_rank.load(in);
     m_char_rank.set_vector(&m_char);
     m_char_select.load(in);
     m_char_select.set_vector(&m_char);
     m_C.load(in);
     read_member(m_sigma, in);
 }
コード例 #3
0
ファイル: wt_int_rlmn.hpp プロジェクト: tb37/sdsl-lite
 //! Loads the data structure from the given istream.
 void load(std::istream& in) {
     read_member(m_size, in);
     m_bl.load(in);
     m_bf.load(in);
     m_wt.load(in);
     m_bl_rank.load(in, &m_bl);
     m_bf_rank.load(in, &m_bf);
     m_bl_select.load(in, &m_bl);
     m_bf_select.load(in, &m_bf);
     m_C.load(in);
     m_C_bf_rank.load(in);
 }
コード例 #4
0
ファイル: lcp_dac.hpp プロジェクト: chenlonggang/sdsl-lite
 //! Load from a stream.
 void load(std::istream& in) {
     m_data.load(in);
     m_overflow.load(in);
     m_overflow_rank.load(in, &m_overflow);
     m_level_pointer_and_rank.load(in);
     read_member(m_max_level, in);
 }
コード例 #5
0
ファイル: wt_int_rlmn.hpp プロジェクト: tb37/sdsl-lite
 //! Serializes the data structure into the given ostream
 size_type serialize(std::ostream& out, structure_tree_node* v=nullptr, std::string name="")const {
     structure_tree_node* child = structure_tree::add_child(v, name, util::class_name(*this));
     size_type written_bytes = 0;
     written_bytes += write_member(m_size, out, child, "size");
     written_bytes += m_bl.serialize(out, child, "bl");
     written_bytes += m_bf.serialize(out, child, "bf");
     written_bytes += m_wt.serialize(out, child, "wt");
     written_bytes += m_bl_rank.serialize(out, child, "bl_rank");
     written_bytes += m_bf_rank.serialize(out, child, "bf_rank");
     written_bytes += m_bl_select.serialize(out, child, "bl_select");
     written_bytes += m_bf_select.serialize(out, child, "bf_select");
     written_bytes += m_C.serialize(out, child, "C");
     written_bytes += m_C_bf_rank.serialize(out, child, "C_bf_rank");
     structure_tree::add_size(child, written_bytes);
     return written_bytes;
 }
コード例 #6
0
ファイル: wt_int_rlmn.hpp プロジェクト: tb37/sdsl-lite
 void copy(const wt_int_rlmn& wt) {
     m_size          = wt.m_size;
     m_bl            = wt.m_bl;
     m_bf            = wt.m_bf;
     m_wt            = wt.m_wt;
     m_bl_rank       = wt.m_bl_rank;
     m_bl_rank.set_vector(&m_bl);
     m_bf_rank       = wt.m_bf_rank;
     m_bf_rank.set_vector(&m_bf);
     m_bl_select     = wt.m_bl_select;
     m_bl_select.set_vector(&m_bl);
     m_bf_select     = wt.m_bf_select;
     m_bf_select.set_vector(&m_bf);
     m_C             = wt.m_C;
     m_C_bf_rank     = wt.m_C_bf_rank;
 }
コード例 #7
0
ファイル: lcp_dac.hpp プロジェクト: chenlonggang/sdsl-lite
 void copy(const lcp_dac& lcp_c) {
     m_data                   = lcp_c.m_data;
     m_overflow               = lcp_c.m_overflow;
     m_overflow_rank          = lcp_c.m_overflow_rank;
     m_overflow_rank.set_vector(&m_overflow);
     m_level_pointer_and_rank = lcp_c.m_level_pointer_and_rank;
     m_max_level              = lcp_c.m_max_level;
 }
コード例 #8
0
 void copy(const int_alphabet& strat) {
     m_char        = strat.m_char;
     m_char_rank   = strat.m_char_rank;
     m_char_rank.set_vector(&m_char);
     m_char_select = strat.m_char_select;
     m_char_select.set_vector(&m_char);
     m_C           = strat.m_C;
     m_sigma       = strat.m_sigma;
 }
コード例 #9
0
		void copy(const succinct_byte_alphabet_strategy& strat){
			m_char			= strat.m_char;
			m_char_rank		= strat.m_char_rank;
			m_char_rank.set_vector(&m_char);
			m_char_select   = strat.m_char_select;
			m_char_select.set_vector(&m_char);
			m_C				= strat.m_C;
			m_sigma			= strat.m_sigma;
		}
コード例 #10
0
 //! Serialize method
 size_type serialize(std::ostream& out, structure_tree_node* v=nullptr, std::string name="")const {
     structure_tree_node* child = structure_tree::add_child(v, name, util::class_name(*this));
     size_type written_bytes = 0;
     written_bytes += m_char.serialize(out, child, "m_char");
     written_bytes += m_char_rank.serialize(out, child, "m_char_rank");
     written_bytes += m_char_select.serialize(out, child, "m_char_select");
     written_bytes += m_C.serialize(out, child, "m_C");
     written_bytes += write_member(m_sigma, out, child, "m_sigma");
     structure_tree::add_size(child, written_bytes);
     return written_bytes;
 }
コード例 #11
0
 int_alphabet& operator=(int_alphabet&& strat) {
     if (this != &strat) {
         m_char        = std::move(strat.m_char);
         m_char_rank   = std::move(strat.m_char_rank);
         m_char_rank.set_vector(&m_char);
         m_char_select = std::move(strat.m_char_select);
         m_char_select.set_vector(&m_char);
         m_C           = std::move(strat.m_C);
         m_sigma       = std::move(strat.m_sigma);
     }
     return *this;
 }