string,map,set高级用法

7-23 Document Distance

在这里插入图片描述
在这里插入图片描述

Exp++

  1. 计算文件的嵌入向量的夹角,不考算法,是一个程序化题目
  2. 利用的sstream用于行处理,map和set用于统计相关变量,cmath.acos计算
  3. 脱离出函数的原因: 1)避免重复2-3遍; 2)模块化更清晰; 两个属性的对象用map就行,3个再用类,类数组采用逐个推入
  4. cin读取一定记得getline(cin,str);
  5. getline(cin,input); input>>ss; ss下次再输入前,要ss.clear()
    在这里插入图片描述
//雷达初始化,
#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<iomanip>
using namespace std;//title对应freq,
// class file{
// public:
//     string title;
//     map<string,int>    freq;    //all words can be read,but what's essential is just the frequency
// };double distance(map<string,int> dict1,map<string,int> dict2){//connstruct w1~wnset<string>    word_list;for(auto i:dict1)        //dict键值不重复word_list.insert(i.first);for(auto i:dict2){if(word_list.find(i.first)==word_list.end())word_list.insert(i.first);}vector<int> F1,F2;for(auto i:word_list){if(dict1.find(i)==dict1.end())F1.push_back(0);else F1.push_back(dict1[i]);if(dict2.find(i)==dict2.end())F2.push_back(0);else F2.push_back(dict2[i]);}//calculat4e angle valuedouble product=0,norm1=0,norm2=0;for(int i=0;i<word_list.size();i++){product+=F1[i]*F2[i];norm1+=F1[i]*F1[i];norm2+=F2[i]*F2[i];}norm1=sqrt(norm1);norm2=sqrt(norm2);return acos(product/(norm1*norm2));
}int main(){string str;int N;    cin>>N;    getline(cin,str);map<string,map<string,int>>    file_list;for(int i=0;i<N;i++){// file tem_file;string title;cin>>title;    getline(cin,str);string input;    //read a linestring word;     //read a wordmap<string,int> dict;getline(cin,input);stringstream ss;while(input!="#"){ss<<input;while(ss>>word){if(word=="#")break;else if(dict.find(word)==dict.end())dict.insert(make_pair(word,1));else dict[word]++;}ss.clear();getline(cin,input);}file_list.insert(make_pair(title,dict));}int M;    cin>>M;for(int i=1;i<=M;i++){string t1,t2;    cin>>t1>>t2;map<string,int>    dict1,dict2;dict1=file_list[t1];dict2=file_list[t2];double result=distance(dict1,dict2);cout<<"Case "<<i<<": "<<fixed<<setprecision(3)<<result<<endl;    //fixed小数点后输出}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452884.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Text Mesh Pro图文混排如何对任何图片都能实现

1&#xff09;Text Mesh Pro图文混排如何对任何图片都能实现 2&#xff09;Unity iOS平台的小图占用特别大的内存 3&#xff09;只在编辑器内&#xff0c;纹理不开启Read&Write情况下&#xff0c;如何获取纹理所有颜色值 4&#xff09;准备在海外发行游戏&#xff0c;有哪些…

计组学习笔记2024/2/4

1.计算机的发展历程 2.计算机硬件的基本组成 存储器 -> 就是内存. 3.各个硬件的部件 寄存器 -> 用来存放二进制数据. 各个硬件的工作原理视频留白,听完后边课程之后再来理解理解. 冯诺依曼计算机的特点: 1.计算机由五大部件组成 2.指令和数据以同等地位存于存储器,…

对象内存与方法调用机制

对象的内存布局 对象、字符串和数组都是引用类型&#xff0c;指向的数 我们以下面main方法部分代码片段为例&#xff1a; Cat cat new Cat(); cat.name "小白"; cat.age 12; cat.color "白色"; 首先执行mian方法&#xff0c;会在栈里创建一个独立的m…

QT6调用音频输入输出(超详细)

目录 一、QT6音频调用与QT5的区别 1.QAudioSource代替QAudioInput类 2.QAudioSink代替QAudioOutput类 二、音频操作中Push和Pull的区别 三、依托于Websocket实现实时对讲机 1.AudioIputDevices类 2.AudioOutputDevices类 3.实现的AudioHandler类完整内容 本人实际是要完…

Open CASCADE学习|分割曲线

1、通过参数进行分割 分别获得曲线的 FirstParameter 和 LastParameter &#xff0c;然后对参数进行分割&#xff0c;获得n个ui&#xff0c;并对每个ui调用D0&#xff08;获得这个点的坐标值&#xff09;或D1&#xff08;获得这个点的坐标值和切向量&#xff09;。这个方法的优…

海康IPC摄像机接入国标平台,发现一直不在线(离线)的处理方式

目 录 一、问题 二、问题分析 &#xff08;一&#xff09;常见设备离线问题的原因 &#xff08;二&#xff09;原因分析 三、问题查处 &#xff08;一&#xff09;设备端排查故障&#xff08;设备端自查&#xff09; 1、检查GB28181参数配置是否有误 2、…

【LeetCode: 292. Nim 游戏+ 博弈问题】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

算法——递归与搜索算法

1. 递归 ①什么是递归&#xff1f; 官方一点来说 递归指的是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。 通俗一点来说&#xff0c;递归就是一个函数自己调用自己的过程 ②什么情况下会用到递归&#xff1f; 我们在遇见一个问题的时候&#xff0c;我怎…

ffmpeg操作实战001:视频+音频文件融合

一、功能需求 把视频文件video.mp4 和音频文件audio.wav融合在一起&#xff0c;输出视频文件output.mp4 二、操作指令 ffmpeg -i video.mp4 -i audio.wav -c:v copy -map 0:v:0 -map 1:a:0 output.mp4 三、参数说明 ffmpeg: 这是用于执行FFmpeg命令行工具的命令。-i video…

深度学习(生成式模型)—— Consistency Models

文章目录 前言预备知识&#xff1a;SDE与ODEMethod实验结果 前言 Diffusion model需要多次推断才能生成最终的图像&#xff0c;这将耗费大量的计算资源。前几篇博客我们已经介绍了加速Diffusion model生成图像速率的DDIM和Stable Diffusion&#xff0c;本节将介绍最近大火的Co…

HarmonyOS 鸿蒙应用开发(九、还是蓝海,如何贡献第三方库)

快来共享第三方库吧&#xff0c;不但可以通过分享自己的成果&#xff0c;可以获得来自全球开发者的技术反馈和建议&#xff0c;提升自身技术能力&#xff0c;还有助于提高个人或团队在开源社区中的知名度和影响力。在流量时代和粉丝经济时代&#xff0c;获得曝光度和流量密码。…

Maven工程的配置及使用

一、Maven章节 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具 1.1、maven的作用 1&#xff09;依赖管理&#xff1a; 方便快捷的管理项目依赖的资源包&#xff08;jar包&#xff09;避免版本冲突 2&#xff09;统一项目结构&…