zoukankan      html  css  js  c++  java
  • stack vector queue 等的实现方式<<0922

    下面是各种vector所有的可能用到的函数

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    
    int main(int argc, const char *argv[])
    {
        string s = "helloworldfoo";
    
    
        string s2 = s.substr(1, 4); //截取string里面的一段,该程序截取从下标1到4 -->  ello
        cout << s2 << endl;
    
        return 0;
    }
    
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <stack>//使用栈必须包含的头文件
    using namespace std;
    
    int main(int argc, const char *argv[])
    {
        stack<int> s; //栈的声明方式和使用
    
        s.push(10);//注意此时不再是push_back
        s.push(22);
        s.push(23);
        s.push(1);
        s.push(8);
        s.push(99);
        s.push(14);
    
        while(!s.empty())
        {
            cout << s.top() << endl;//stack的push(),pop(),top()和empty()函数
            s.pop();
        }
    
    
    
    
        return 0;
    }
    #include <iostream>
    #include <string>
    #include <vector>
    #include <queue>//s使用队列必须包含的头文件
    using namespace std;
    
    int main(int argc, const char *argv[])
    {
        queue<int> q; // 队列的声明方式以及使用等
    
        q.push(12);
        q.push(23);
        q.push(4);
        q.push(5);
        q.push(7);
    
    
        while(!q.empty())//队列的函数使用
        {
        
            cout << q.front() << endl;
            q.pop();
        }
    
    
        return 0;
    }
    #include <iostream>
    #include <string>
    #include <vector>
    #include <queue>
    using namespace std;
    
    
    int main(int argc, const char *argv[])
    {
        priority_queue<int> q;//优先级队列的使用,函数等
        q.push(12);
        q.push(99);
        q.push(23);
        q.push(123);
    
        while(!q.empty())
        {
            cout << q.top() << endl;        
            q.pop();
        }
    
        return 0;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <queue>
    using namespace std;
    
    
    int main(int argc, const char *argv[])//使用系统内置的排序函数的优先级队列的声明方式
    {
        priority_queue<int, vector<int>, greater<int> > q;
        q.push(12);
        q.push(99);
        q.push(23);
        q.push(123);
    
        while(!q.empty())
        {
            cout << q.top() << endl;        
            q.pop();
        }
    
        return 0;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <queue>
    using namespace std;
    
    
    int main(int argc, const char *argv[])
    {
        priority_queue<int, vector<int>, less<int> > q;
        q.push(12);//优先级队列
        q.push(99);
        q.push(23);
        q.push(123);
    
        while(!q.empty())
        {
            cout << q.top() << endl;        
            q.pop();
        }
    
        return 0;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <queue>
    using namespace std;
    
    
    struct Score
    {
        int score_;
        string name_;
    
        Score(int score, const string name)
            :score_(score), name_(name)
        { }
    };
    
    
    class Cmp//优先级队列等得自定义排序方式中Cmp,比较类的书写方式
    {
        public:
            bool operator() (const Score &s1, const Score &s2)
            {
                return s1.score_ < s2.score_;
            }
    };
    
    // Cmp p;
    // p(s1, s2)
    
    
    int main(int argc, const char *argv[])
    {
        priority_queue<Score, vector<Score>, Cmp> q;//stack,queue,等在push进去的时候,可以设置排序函数来对入栈,入队的数据进行排序
        
        q.push(Score(67, "zhangsan"));
        q.push(Score(88, "lisi"));
        q.push(Score(34, "wangwu"));
        q.push(Score(99, "foo"));
        q.push(Score(0, "bar"));
    
        while(!q.empty())
        {
            cout << q.top().name_ << " : " << q.top().score_ << endl;
            q.pop();
        }
    
    
    
    
        return 0;
    }
    
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    void print(int i)
    {
        cout << i << endl;
    }
    
    int main(int argc, const char *argv[])
    {
        vector<int> vec;
        vec.push_back(12);
        vec.push_back(23);
        vec.push_back(45);
        vec.push_back(56);
        vec.push_back(221);
        vec.push_back(35);
        vec.push_back(129);
    
        for_each(vec.begin(), vec.end(), print);//对vector指定迭代器范围内的里面的每一个元素,设置一个处理函数的使用方式,for_each()函数(最后一个参数是一个函数,默认参数为每个元素)
    
        return 0;
    }
    
    
    
  • 相关阅读:
    Spring 发生 has not been refreshed yet 异常
    rsyslog config
    grok
    阿里云态势
    Unity的asm笔记
    Unity2020或Unity2019安装后无法启动
    rider代码折叠
    使用rider调试lua
    MacType更好的字体渲染
    Unity字体和画面花屏处理
  • 原文地址:https://www.cnblogs.com/sunstars/p/3989702.html
Copyright © 2011-2022 走看看