如何在不使用sort()函数的情况下在保持STL :: vector的排序顺序的同时插入元素

时间:2017-10-26 19:16:50

标签: c++ c++11

我是c ++的初学者。有人让我知道如何插入元素,同时保持STL :: vector的排序顺序(没有内置的排序()函数)

我遇到了分段错误。

请在下面找到我的代码:

代码:

int main()
{
    vector<int> k;

    k.insert(k.begin(), 2);

    k.insert(k.begin(), 1);
    k.insert(k.begin(), 38);

    k.insert(k.begin(), 4);


    k.insert(k.begin(), 50);

    int s = rand() % 40;

    for (auto p = k.begin(); p != k.end(); p++)
    {
        if (s > *p)
        {
            auto m = k.begin()++;
            k.insert(m, s);
        }
        else
        {
            k.insert(k.begin(), s);
        }
    }

    for (auto p = k.begin(); p != k.end(); p++)
    {
        cout << *p << " ";
    }
}

0 个答案:

没有答案