9.8 C++

cpp 复制代码
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
class Stu
{
    friend istream &operator >>(istream &cin, Stu &p);
   friend  ostream &operator <<(ostream &cout,const Stu &p);
private:
    string name;
    int age;
public:
    Stu(){}
    Stu(string name,int age):name(name),age(age)
    {}

};
ostream &operator <<(ostream &cout,const Stu &p)
{
    cout << p.name << " " << p.age << endl;
    return cout;
}
istream &operator >>(istream &cin, Stu &p)
{
    cin >> p.name >>p.age;
    return cin;
}
void printv(vector<Stu> &v2)
{
    vector<Stu>::iterator iter;
    for(iter=v2.begin();iter !=v2.end();iter++)
    {
        cout << *iter <<" ";
    }
    cout << endl;
}
int main()
{
    Stu s1("张三",19);
    Stu s2("李四",20);
    Stu s3("王五",21);
    vector<Stu> v1;
    v1.push_back(s1);
    v1.push_back(s2);
    v1.push_back(s3);
    ofstream ofs;
    ofs.open("C:/Users/Bestow/Desktop/C++/day7/Stu.txt",ios::out);
    for(Stu s : v1)
    {
        ofs << s <<endl;
    }
    ofs.close();
    ifstream ifs;
    ifs.open("C:/Users/Bestow/Desktop/C++/day7/Stu.txt",ios::in);


    vector<Stu> v2;
    Stu temp;
    while(ifs >> temp )
        {
           v2.push_back(temp);
        }
    printv(v2);
    return 0;
}

思维导图:

list使用:

cpp 复制代码
#include <iostream>
#include <vector>
#include <list>

using namespace std;
void printv(list<int> &v)
{
    list<int>::iterator iter;
    for(iter=v.begin();iter !=v.end();iter++)
    {
        cout << *iter <<" ";
    }
    cout << endl;
}

int main()
{
    list<int> v;
    v.push_back(61);
    v.push_back(71);
    v.push_back(81);
    v.push_back(91);
    v.push_back(101);
    printv(v);
     list<int> v1(v);
     printv(v1);
     list<int> v2(v1.begin(),v1.end());
     printv(v2);
     list<int> v3(6,91);
      printv(v3);
      list<int> v4;
      v4=v3;
      printv(v4);
      list<int> v5;
      v5.assign(v2.begin(),v2.end());
      printv(v5);
      v5.assign(6,6);
      printv(v5);
      v5.resize(10);
      printv(v5);
      v5.resize(3);
      printv(v5);
      if(!v5.empty())
      {
          cout << v5.size() << endl;

      }
      cout << "=============================" << endl;
      list<int> v6=v2;
      printv(v6);
       v6.pop_back();
       printv(v6);
       v6.insert(v6.begin(),1);
       v6.insert(v6.begin(),3,66);
       printv(v6);
       v6.clear();
       printv(v6);
       cout << "=============================" << endl;
       list<int> v7=v2;
       printv(v7);

       cout << v7.front() << endl;
       cout << v7.back() << endl;
    return 0;
}
相关推荐
计科土狗28 分钟前
算法基础入门第一章
c++·算法
yue00836 分钟前
C# 生成指定位数的编号
开发语言·c#
大笨象、小笨熊40 分钟前
Qt Widgets和Qt Quick在开发工控触摸程序的选择
开发语言·qt
9ilk42 分钟前
【仿RabbitMQ的发布订阅式消息队列】 ---- 功能测试联调
linux·服务器·c++·分布式·学习·rabbitmq
北冥湖畔的燕雀1 小时前
std之list
数据结构·c++·list
红黑色的圣西罗1 小时前
C# List.Sort方法总结
开发语言·c#
E_ICEBLUE1 小时前
Python 教程:如何快速在 PDF 中添加水印(文字、图片)
开发语言·python·pdf
Elias不吃糖1 小时前
eventfd 初认识Reactor/多线程服务器的关键唤醒机制
linux·服务器·c++·学习
南方的狮子先生2 小时前
【C++】C++文件读写
java·开发语言·数据结构·c++·算法·1024程序员节