melt日記

.NETすらまともに扱えないへたれのページ

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  111  : 記事  3  : コメント  8268  : トラックバック  41

ニュース

わんくま同盟

わんくま同盟

C# と VB.NET の質問掲示板

iKnow!


Dictation



書庫

cloak::cloak() { }
cloak::~cloak() { }
int cloak::peek() const
{
    if (tags_.empty())
    {
        return 1;
    }
    int n = *tags_.begin();
    if (n <= 0)
    {
        return n - 0x80000000;
    }
    else
    {
        return *tags_.rbegin() + 1;
    }
}
int cloak::acquire()
{
    return *(tags_.insert(peek()).first);
}
bool cloak::release(int n)
{
    if (tags_.erase(n) != 0)
    {
        tags_.insert(0x80000000 + n);
        return true;
    }
    else
    {
        return false;
    }
}
void cloak::clear()
{
    tags_.clear();
}
template<typename Iterator> 
Iterator cloak::acquired(Iterator out) const
{
    if (tags_.empty())
    {
        return out;
    }
    for (int n = 1; n <= *tags_.rbegin(); n++)
    {
        if (tags_.count(n) != 0)
        {
            (*out) = n;
            ++out;
        }
    }
    return out;
}
template<typename Iterator>
Iterator cloak::released(Iterator out) const
{
    if (tags_.empty())
    {
        return out;
    }
    for (int n = 1; n <= *tags_.rbegin(); n++)
    {
        if (tags_.count(n) == 0)
        {
            (*out) = n;
            ++out;
        }
    }
    return out;
}
投稿日時 : 2007年3月1日 23:04

コメント

# re: melt の解答(手荷物一時預かり)(2) 2007/03/01 23:38 melt
あ、acquire() で insert() する前に、peek() に対応するマイナスの値がある場合は erase() しておかないとダメですね……(;´Д`)

int cloak::acquire()
{
  int n = peek();
  tags_.erase(0x80000000 + n);
  return *(tags_.insert(n).first);
}

# michael kors factory outlet 2018/05/21 11:40 jinyizhixia
http://www.canadagooseoutletin.com.co
http://www.pandoraofficial.us.com
http://www.coachoutletonlinedeals.us.com
http://www.supremeclothingonline.us.org
http://www.handbagsmichaelkors.us.org


Post Feedback

タイトル
名前
Url:
コメント