首页 > 其他 > 详细

A题笔记(9)

时间:2014-01-16 20:44:07      阅读:359      评论:0      收藏:0      [点我收藏+]

No.2283

No.1387

 

vector<vector<char> > before, after;

可以创建一个容器的容器,注意 char 后的两个 “>” ,之间必须有一个空格,否则会被当做是右移操作 “>>” 来处理。

 

如何向一个容器的容器传值呢,可以参照以下方法:

bubuko.com,布布扣
    int n;

    cin>>n;

    vector<vector<char> > before;
    vector<char> oneline;
    char tmp;
    int i, j;

    for(i=0; i<n; i++)
    {
        oneline.clear();
        for(j=0; j<n; j++)
        {
            cin>>tmp;
            oneline.push_back(tmp);
        }
        before.push_back(oneline);
    }
bubuko.com,布布扣

每次使用容器 oneline 时,必须对其进行清空 oneline.clear(),一行输入完成后便可以将其整个传入容器的容器中。

 

如果要将容器作为参数传递给函数,不能直接将容器作为变量,而是选择传递 指向容器中需要处理的元素的迭代器来传递容器:

vector<vector<char> >::iterator b=before.begin(), a=after.begin();

check1(b, a, n);
bubuko.com,布布扣
int check1(vector<vector<char> >::iterator before, vector<vector<char> >::iterator after, int n)
{
    int i, j;

    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            if(before[i][j]!=after[j][n-1-i])
                return 0;

    return 1;
}
bubuko.com,布布扣

迭代器在函数中完全可以当做是容器本身来使用。

 

bubuko.com,布布扣
    switch (lk)
    {
    case 0: case 1: case 2:
        cout<<"You are a Foolish Man";
        break;
    case 3:
        cout<<"You are on a Killing Spree";
        break;
    default:
        cout<<"You are Beyond Godlike (Somebody kill him!)";
        break;
    }
bubuko.com,布布扣

switch 中的每一个 case 标号的值都必须是一个 “常量表达式” 

形如: case check1(...): 编译时会错误。

A题笔记(9)

原文:http://www.cnblogs.com/LeoGodfrey/p/3518660.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!