猫史档案馆


【三千の教程】迭代……器

用户:AaaaaaaaffAaaaaaaaff查看:2 回复:5 评论:2 创建时间:2020-07-03T18:44:00


我三千又双叒叕过来水教程啦~

这次我就冒昧给大家来点儿阴间[doge],喵进阶一些的东西

C++迭代器的(简单)使用

迭代器能干啥呢,大家想必都知道链表吧,就是kitten里的列表(像我这种只会做聊天室的最喜欢它了[doge])

迭代器能为我们遍历链表容器(如list)中的元素,当然这个教程贴我讲的只是list链表的创建和使用迭代器访问链表中的指定元素,仅此而已(下周一期末考,要复习)。周末有空的话我再做一下更高阶的教程。

首先,老盆友头文件和命名空间。这次需要四个头文件,当然你用万能头也可以,但没有#include <unistd.h>

#include <iostream>
#include <list>
#include <vector>
#include <unistd.h>
using namespace std;

按我滴一贯作风,水作肯定是要花里胡哨哒~加个逐字输出特效函数,这个我就不讲了,炒鸡简单

void xz_3_0_01(const string font,long int x,long int ys,long int ys2){
    cout<<"\033[?25l\033["<<ys<<"m"<<font<<"\n\033[1A";
    cout<<"\033["<<ys2<<"m";
     for(int i = 0; i < font.size(); i++)
    {
        cout << font[i];
        usleep(x);
    }
    cout<<"\033[0m\n";
    }

主函数

int main(){
 
return 0;
}

首先先定义一个整形数组

 int xz[10]={1,3,5,7,9,2,4,6,8,10};

接下来就是创建一个链表了,使用这类模板都要先创建一个list对象

    list<int> jc(xz,xz+10);

这里我创建了一个list对象jc,储存整形类型的数据。(xz,xz+10)设定了它的数值(起始值xz,结束xz+10)

接下来,将这个链表使用sort函数从小到大排序

    jc.sort();

接下来是重头戏啦,定义一个迭代器shouxiang,并将shouxiang初始化为指向jc的第一个元素

    list<int>::iterator shouxiang=jc.begin();

接下来我们定义一个整形变量sc,

    long int sc;

输出一段话并让用户输入指定输出链表项的第sc项

xz_3_0_01("这是一个数组:1,3,5,7,9,2,4,6,8,10",25000,91,97);
xz_3_0_01("程序将会调用sort将这个数组进行排序",25000,91,97);
xz_3_0_01("请输入一个数n,终端将会显示链表中按从小到大排列的第n个数",25000,91,97);
            cout<<"\033[?25h";
        cin>>sc;
        cout<<"\033[?25l";

使用for循环通过迭代器访问jc中从小到大排列的第sc个数

 for(int i=1;i<=sc-1;i++){
        shouxiang++;
    }

最后将这个数输出来~

cout<<"该数是"<<*shouxiang<<endl;

OK,圆满完成。

完整代码:

#include <iostream>
#include <list>
#include <vector>
#include <unistd.h>
using namespace std;
void xz_3_0_01(const string font,long int x,long int ys,long int ys2){
    cout<<"\033[?25l\033["<<ys<<"m"<<font<<"\n\033[1A";
    cout<<"\033["<<ys2<<"m";
     for(int i = 0; i < font.size(); i++)
    {
        cout << font[i];
        usleep(x);
    }
    cout<<"\033[0m\n";
    }
int main(){
    int xz[10]={1,3,5,7,9,2,4,6,8,10};
    list<int> jc(xz,xz+10);
    jc.sort();
    list<int>::iterator shouxiang=jc.begin();
    long int sc;
xz_3_0_01("这是一个数组:1,3,5,7,9,2,4,6,8,10",25000,91,97);
xz_3_0_01("程序将会调用sort将这个数组进行排序",25000,91,97);
xz_3_0_01("请输入一个数n,终端将会显示链表中按从小到大排列的第n个数",25000,91,97);
            cout<<"\033[?25h";
        cin>>sc;
        cout<<"\033[?25l";
        for(int i=1;i<=sc-1;i++){
        shouxiang++;
        }
        cout<<"该数是"<<*shouxiang<<endl;
    return 0;
}

如本期教程出现错误请在评论区给三千指正喔~

体验:https://code.xueersi.com/home/project/detail?lang=code&pid=喵88303&version=cpp&form=compiler&langType=cpp

我又走啦~(打开B站)

center_image


回复

上一页1 页 / 共 1下一页
蕉饼蕉饼

  

点赞0


评论


AaaaaaaaffAaaaaaaaff

没评论......是这个太简单了吗

点赞0


评论


F_S_2F_S_2

input('这是什么')

点赞0


评论


AaaaaaaaffAaaaaaaaff

  

点赞0


评论


AaaaaaaaffAaaaaaaaff

  

点赞0


评论