There is a will there is a way!

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  4 随笔 :: 0 文章 :: 29 评论 :: 0 Trackbacks

2006年4月15日 #

   在C++中有一些容器可以直接用的 如:queue stack priority_queue deque set map 
  等。  在这里我将说说vector;
   vector<class T> vec; 这是定义一个空的向量, 方法有:size , push_back,pop_back; erase,empty,begin,end  返回迭代器 等等, 还可以直接的下标操作 如:vec[i];还有就迭代器了  vector<class T>::iterartor it=vec.bengin();
  还是看看例子吧:
 #include <iostream>
  #include <vector>
  using namespace std;
int main()
{
    vector<int> vec;
    int a;
    while(cin>>a)
    {
        vector.push_back(a);//vector是自动分配空间的
    }
    for(int i=0;i<vec.size();i++)
    cout<<vec[i]<<endl;
    vec.pop_back();
    for(int i=0;i<vec.size();i++)
    cout<<vec[i]<<endl;
    return 1;
}
  当输入是:1 2 3 4 5 时
输出是:
1
2
3
4
5

1
2
3
4
好了现在能简单的用了吧!  有问题在在网上留言吧!!

posted @ 2006-04-15 14:35 王直元 阅读(3395) | 评论 (7)编辑 收藏

2006年4月14日 #


priority_queue是很有用的的一个容器,你可以定义以什么为优先.所以你可以定义方法,也就是一个函数类对象,C++中有一个<fanction>里面定义了一些方法 如:less<class T>    这是按值大的优先 greater<class T>这是按值小的优先,
priority_queue<class T, class comp=less< class Y>> 默认的是以大为先, 方法有 push() , pop(), empty(), front().等等
看看例子吧!

#include <iostream>
#include 
<queue>//有priority_queue
using namespace std;
int main()
{
    priority_queue
<int> q;
    
int a;
    
while(cin>>a)
    
{
        q.push(a);
    }

    
while(!q.empty())
    
{
        cout
<<q.front()<<endl;
        q.pop();
    }

    
return 1;
}


输入:3  4 6 1 10 2 45 ctrl+z  ( ctrl+z是输入结束标志)

输出:
45
10
6
4
3
2
1
posted @ 2006-04-14 00:21 王直元 阅读(7878) | 评论 (13)编辑 收藏

2006年4月13日 #

文件  <stack>   <queue>   使用时stack<class T>  st  queue<class T>  q
stack   的使用方法有   push()的向容器顶部里插入元素, pop()是删除容器顶部的元素, top()返回容器顶部的元素,size()返回容器的元素个数,begin()是返回一个位于容器的第一个元素的迭代器,end()当然是最后了  empty()是检查是否为空的方法 空时返回true 否则返回 false,
queue 方法只有front()与 stack 不一样 当然是返回对头的元素,看看下面的例子吧.
#include<iostream>
#include
<stack>
#include
<queue>
using namespace std;
int main()
{
    stack
<int> st;
    queue
<int> q;
    st.push(
10);
    st.push(
20);
    q.push(
30);
    q.push(
40);
    cout
<<st.top()<<endl;
    st.pop();
    cout
<<st.top()<<endl;
    cout
<<q.front()<<endl;
    q.pop();
    cout
<<q.front()<<endl;
    
while(!st.empty())   //当然queue也能这样用
    {
       
int a=st.top();
       cout
<<a<<endl;
       st.pop();
    }
 
}


output:

20

10

30

40

10

 

posted @ 2006-04-13 23:52 王直元 阅读(6729) | 评论 (11)编辑 收藏

2006年4月10日 #

     摘要: 这里的迷宫是由0 1表示的 0表示墙, 1表示能通过 这里我用了const int row=7,column=13;你当然可以改动这个参数. 运行后回把其中的一条路径改成其它数字你会看到的, #include  < iostream > ...  阅读全文
posted @ 2006-04-10 23:21 王直元 阅读(622) | 评论 (0)编辑 收藏

仅列出标题