示例#1
0
 const T & operator[] (const T &key) const {
     typename base_type::const_iterator it;
     it = base.find(key);
     if (it == base.end()) {
         return (base[key] = key);
     }
     return it->second;
 }
示例#2
0
    typename cop<KeyT,DataT,CompareT,AllocT>::iterator
        cop<KeyT,DataT,CompareT,AllocT>::subtract(const key_type& key)
    {
        iterator it_ = find(key);
        if(it_ != end())
            erase(it_);

        return end();
    }
示例#3
0
    typename cop<KeyT,DataT,CompareT,AllocT>::iterator
        cop<KeyT,DataT,CompareT,AllocT>::subtract(const value_type& val)
    {
        iterator it_ = find(val.KEY_VALUE);
        if(it_ != end())
        {
            (*it_).CONT_VALUE -= val.CONT_VALUE;

            if((*it_).CONT_VALUE == DataT()) //neutron absorbtion
            {
                erase(it_);
                return end();
            }
            else
                return it_;
        }
        //JODO inverse subtraction violates LAW: symmetric difference
        //else
        //{
        //    DataT inverse = DataT();
        //    inverse -= val.CONT_VALUE;
        //    return insert(value_type(val.KEY_VALUE, inverse)).ITERATOR;
        //}
    }
示例#4
0
 //JODO concept set
 /// Checks if a key element is in the cop
 bool contains(const KeyT& x)const { return !(find(x) == end()); }