#include <iostream>
#include <string>
#include <ctime>
#include "../touh/swap.h"
using namespace std;
# define day 7
#define max 100
class calculate
{
public:
double operate( )
{
if(c =="+")
{
return a+b;
}
else if (c=="-")
{
return a - b;
}
else if (c == "*")
{
return a*b;
}
else if (c == "/")
{
return a/b;
}
}
public:
int a;
int b;
string c;
};
int main()
{
double a,b;
string c;
cout<<"please input the operater that you need: = - * /"<<endl;
cin>>c;
calculate operatpr;
operatpr.c = c;
cin>>a;
operatpr.a = a;
cin>>b;
operatpr.b = b;
a=operatpr.operate();
cout<<"answer"<<a<<endl;
return EXIT_SUCCESS;
}
演讲比赛
sort(d.begin(), d.end(), greater<double>()); 从大到小排序 后面的是算法规则 关系仿函数
double sum = accumulate(d.begin(), d.end(), 0.0f); //获取总分
this->m_Speaker[*it].m_Score[this->m_Index - 1] = avg;
map<int, Speaker> m_Speaker; map的标号 他这里应该是根据key值返回second的属性
string m_Name; //姓名
double m_Score[2]; //分数 最多有两轮得分
multimap<double, int, greater<int>> groupScore; //临时容器,保存key分数 value 选手编号
得分 选手编号 降序排列
输出文件
csv
https://blog.csdn.net/weixin_45135767/article/details/108697336
ofs.open("speech.csv", ios::out | ios::app); // 用输出的方式打开文件 -- 写文件 apend的方式
他读取走了一个字符,并判断文件是否为空
然后需要把该字符重新放回去
利用string全部读到手
然后 string 查找逗号位置
没找到就返回最后一个位置 ,找到了就返回第一个找到的位置
默认从0位置开始 然后找到第一个逗号位置
截取子串 位置从 star开始 找到了,进行分割 参数1 起始位置,参数2 截取长度
this->m_Record.insert(make_pair(index, v));
可以用中括号索引容器中的数据
比如 it-> second[0]冠军编号 it->second[1] 分数
"冠军编号:" << this->m_Record[i][0] << " 得分:" << this->m_Record[i][1] << " "
"亚军编号:" << this->m_Record[i][2] << " 得分:" << this->m_Record[i][3] << " "
"季军编号:" << this->m_Record[i][4] << " 得分:" << this->m_Record[i][5] << endl;
我估计他数据保存的时候 就是 vector 一个一个保存
#include<>和#include“”的区别
https://blog.csdn.net/rammuschow/article/details/107947302
#include<>:编译器直接从系统类库目录里查找头文件:
#include"":默认从项目当前目录查找头文件,所谓项目当前目录,就是项目工程文件(*.vcxproj)所在的目录,如下图所示:
文件写入
文件默认写在工程文件夹下。
ifs读取
把空格和回车给吃了
ifs读取空格跳过吗
如和用ifs读取空格
机房
#pragma once
#include<iostream>
using namespace std;
class identity
{
public:
virtual void opermenu()=0;
string m_name;
string m_pwd;
}
2022-12-23
‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use
_CRT_SECURE_NO_WARNINGS. See online help for details.
#define _CRT_SECURE_NO_DEPRECATE
https://blog.csdn.net/helloworld0906/article/details/84566276
菜单功能实现
父类指针转换为子类指针
父类指针无法直接调用子类的新函数,需要转换为子类指针后才能调用。
void managerMenu(Identity * &manager) 父类指针传入
Manager* man = (Manager*)manager;
多态里面是父类指针或引用指向子类对象
return
return只能返回一个值
return 只能返回一个值:一个数值或一个指针值。
需要返回多个值,简单的办法是通过函数参数传递。
return j,k; 完全可以,语法正确,因为它返回的是一个表达式的值。这里是“逗号表达式”:
j,k;
逗号表达式的“计算”结果是用逗号分隔的最后一个表达式,这里j是一个表达式,k是一个表达式;
return j,k; 返回k
return k,j; 返回j
结构体中初始化 重载
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
遍历字符串
for (char c : s) {
遍历字符串