首页 > 其他分享 >HJ19 简单错误记录

HJ19 简单错误记录

时间:2024-04-08 15:14:13浏览次数:24  
标签:std 错误 记录 HJ19 deq 16 str using

描述

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。

处理:

1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是“相同”的错误记录。
2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;
3、 输入的文件可能带路径,记录文件名称不能带路径。也就是说,哪怕不同路径下的文件,如果它们的名字的后16个字符相同,也被视为相同的错误记录
4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准

代码:


#include <iostream>
#include <string>
#include <deque>
#include <map>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::map;
using std::deque;

int main() {
    string str;
    map<string, int> result;
    deque<string> deq;
    while (getline(cin, str)) {
        str = str.substr(str.find_last_of('\\') + 1);
        int pos = str.find_last_of(' ');
        if ( pos > 16) {
            str = str.substr(pos - 16);
        }

        if (result.find(str) == result.end()) deq.push_back(str);
        ++result[str];
        if (deq.size() > 8) deq.pop_front();
    }
    for (auto x : deq) {
        cout << x << " " << result[x] << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

标签:std,错误,记录,HJ19,deq,16,str,using
From: https://www.cnblogs.com/lihaoxiang/p/18121188

相关文章

  • Java 解决 Process 执行命令行命令报【CreateProcess error=2, 系统找不到指定的文件
    目录问题问题代码解决方案判断操作系统问题使用Process执行命令行命令时,报 CreateProcesserror=2,系统找不到指定的文件。但明明指定的文件是存在的。而且这种错误只在 IDEA中运行会报错,打包后直接java-jar运行就能正常运行,不会报错。问题代码publicclas......
  • PCB学习记录-----入门&基础知识
    一、搭建环境1.下载嘉立创EDA 软件下载-嘉立创EDA(lceda.cn)选专业版在线编辑:嘉立创EDA(专业版)-V2.1.45(lceda.cn)官方教程:立创EDA专业版-使用教程(lceda.cn)2.新建工程文件-新建-项目,右键Board1可以重命名,原理图右键新增图页右侧图纸尺寸可自定义调整图纸......
  • Koa 应用中使用错误处理中间件
    示例:如果访问应用时URL中包含参数error=true,则会抛出一个错误。错误处理中间件会捕获这个错误,并返回适当的错误响应。constKoa=require('koa');constapp=newKoa();//错误处理中间件app.use(async(ctx,next)=>{try{//执行下一个中间件awaitnex......
  • 【LeetCode刷题记录】15. 三数之和
    15三数之和给你一个整数数组nums,判断是否存在三元组[nums[......
  • 假设a=3’b101,b=3’b001,下列描述错误的是()。
    选项:A、~^a=1'b0B、a<<2=3'b100C、(a<b)?1:0=0D、{3{2'b10}=6’b101010答案:A解析:归约操作符包括:归约与(&),归约与非(&),归约或(|),归约或非(|),归约异或(),归约同或(~)。归约操作符只有一个操作数,它对这个向量操作数逐位进行操作,最终产生一个1bit结果。~^a=~(1'b1^1'b0^1'b1)=~(1......
  • javaweb codereview记录-03
    Class类加载流程实际上就是ClassLoader将会调用loadclass来尝试加载类,首先将会在jvm中尝试加载我们想要加载的类,如果jvm中没有的话,将调用自身的findclass,此时要是findclass重写了,并且传入了我们想要加载的类的字节码,那么应该调用defineclass在jvm中加载该类,最后返回java.lang.......
  • git 统计 提交记录
    1、一段时间某人提交的代码行数gitlog--since=2024-03-01--until=2024-03-31--author="zhangsan"--pretty=tformat:--numstat|gawk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf"addedlines:%sremovedlines:%stotallines:%s\n"......
  • LeetCode刷题记录——day10
    1、https://leetcode.cn/problems/rotate-image/description/?envType=study-plan-v2&envId=2024-spring-sprint-100classSolution{public:voidrotate(vector<vector<int>>&matrix){intn=matrix.size();for(inti=0;......
  • 毕设之错误解决办法
    今天遇到了个这个问题×Encounterederrorwhilegeneratingpackagemetadata.╰─>Seeaboveforoutput.note:Thisisanissuewiththepackagementionedabove,notpip.hint:Seeabovefordetails.python报的错误: 这个错误表明在生成包的元数据时遇......
  • 【51单片机入门记录】RTC(实时时钟)-DS1302应用
    目录一、DS1302相关写函数(1)Write_Ds1302(2)Write_Ds1302_Byte二、DS130相关数据操作流程及相关代码(1)DS1302初始化数据操作流程及相关代码(shijian[i]/10<<4)|(shijian[i]%10)的作用:将十进制转换为BCD码。代码呈现(2)DS1302获取数据操作流程及相关代码代码呈现三、应用举例-......