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;
}


posted on 2014-09-24 01:55  __hello world  阅读(175)  评论(0编辑  收藏  举报

导航