Coder Social home page Coder Social logo

advanced-c's Introduction

""" https://ideone.com/qTPPQV if (!(keyBegin < keyEnd))

        return;

    auto nextInterval = --m_map.upper_bound(keyEnd);

    auto inserted1 = m_map.end();

    auto inserted2 = m_map.end();

    assert(nextInterval != m_map.end());

    if (nextInterval->second == val)

        ++nextInterval;

    else if (nextInterval->first < keyEnd)

    {

        const V & nextValue = nextInterval->second;

        ++nextInterval;

        inserted1 = nextInterval = m_map.emplace_hint(nextInterval, keyEnd, nextValue);

    }

    try

    {

        auto prevInterval = nextInterval;

        --prevInterval;

        assert(prevInterval != m_map.end());

        if (keyBegin < prevInterval->first)

            prevInterval = --m_map.upper_bound(keyBegin);

        assert(prevInterval != m_map.end());

        if (!(prevInterval->second == val))

        {

            if (prevInterval->first < keyBegin)

            {

                ++prevInterval;

                inserted2 = prevInterval = m_map.emplace_hint(prevInterval, keyBegin, val);

            }

            else

            {

                auto beforePrev = prevInterval;

                --beforePrev;

                if (beforePrev != m_map.end() && beforePrev->second == val)

                    prevInterval = beforePrev;

                else

                {

                    assert(prevInterval != m_map.end());

                    assert(prevInterval != nextInterval);

                    auto hint = m_map.erase(prevInterval);

                    inserted2 = prevInterval = m_map.emplace_hint(hint, keyBegin, val);

                }

            }

        }

        assert(prevInterval != m_map.end());

        m_map.erase(++prevInterval, nextInterval);

    }

    catch (...)

    {

        if (inserted1 != m_map.end())

            m_map.erase(inserted1);

        if (inserted2 != m_map.end())

            m_map.erase(inserted2);

        throw;

    }

"""

advanced-c's People

Contributors

bobafwata avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.