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;
}
相关推荐
炸膛坦客32 分钟前
单片机/C/C++八股:(二十三)#define 和 typedef 的区别
c语言·c++·单片机
汤米粥1 小时前
Python调用百度搜索触发安全验证
开发语言·python
影寂ldy1 小时前
C# 五大加密算法全套实战(AES/DES对称、RSA非对称、MD5/SHA256哈希)
开发语言·c#·哈希算法
旖-旎1 小时前
《LeetCode 646 最长数对链 || LeetCode 1143 最长公共子序列》
c++·算法·leetcode·动态规划
罗超驿1 小时前
6.Java LinkedList深度解析:从链表原理到源码实践
java·开发语言·链表
2501_948106911 小时前
计算机毕业设计之jsp物业管理系统
java·大数据·开发语言·汽车·课程设计
逝水无殇2 小时前
C# 反射详解
开发语言·后端·c#
阿米亚波2 小时前
【C++ STL】std::list
c++·windows·笔记·stl·list
橙色阳光五月天2 小时前
CMake 构建配置文件解析
c++·cmake·plugin
xlxxy_2 小时前
sap获取批次特性报表
java·linux·开发语言·前端·数据库·abap·mm