C++使用map容器实现电子词典

目录
  • 目的
  • map容器
  • 本文实现的功能
  • 代码思想
  • 效果图

目的

学习使用map容器

map容器

可以理解为:一种映射,一对一(例如x对y),可以通过x查询到唯一对应的y。

本文实现的功能

读取电子词典的文件,一对一压入map容器中(即英文对应中文解释),

然后通过英文,获得中文含义,以达到电子词典的功能。

代码思想

1、打开电子词典的text文本文件;

2、使用按行读取文件中的内容(文件中一行,代表一个单词以及中文解释);

3、将读取到的数据通过sscanf函数进行拆分(通过空格判断拆分),将英文与中文分开,一对一存入map容器中

4、循环执行2、3步,直到读到文件末尾结束;

5、输入单词,使用map容器的函数去查询得到中文解释。

实现代码

#include <iostream>
using namespace std;
//#define _CRT_SECURE_NO_WARNINGS
#pragma warning (disable:4996)//用来屏蔽sscanf的警告
#include <map>
#include <fstream>

int main()
{
	map<string, string> wordDict;
	fstream fs;
	fs.open("dict.txt", ios::in);
	char buf[1024] = { 0 };
	char key[200] = { 0 };
	char value[200] = { 0 };
	while (fs.peek() != EOF)
	{
		fs.getline(buf, 1024);
		sscanf(buf, "%s %s", key, value);
		wordDict.insert(pair<string, string>(key, value));
	}
	cout << wordDict.size() << endl;

	string word;
	while (1)
	{
		cout << "请输入要查询的单词:" << endl;
		cin >> word;
		int res = wordDict.count(word);
		if (res == 0)
		{
			cout << "未查询到该单词!" << endl;
		}
		else
		{
			cout << "单词说明如下:" << endl;
			cout << wordDict[word] << endl;
		}
	}

	return 0;
}

效果图

电子词典的文件截图:

运行结果:

到此这篇关于C++使用map容器实现电子词典的文章就介绍到这了,更多相关C++ map电子词典内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++中不得不说的map容器

    目录 前言 1,map基本概念 2,map构造和赋值 3,大小和交换 4,插入和删除 5,查找和统计 6,排序 总结 前言 为什么这两天在研究C++的容器呢,因为刷题的时候碰见了几个不擅长的题,得用STL中的几种容器才能解出来,所以也是动力满满呀,希望能尽快转过头去把那几个题给写出来,哈哈哈,当然,解题思路和过程后续我也会分享出来.话不多说,老规矩, 使用map容器要包含头文件#include<map> 1,map基本概念 简介: map中所有元素都是pair(成对出现的数) pair中第一个

  • C++中map容器的具体使用

    目录 一.map容器 1.1 简介 1.2 pair对组的创建 1.3 map容器构造和赋值 1.4 map容器大小和交换 1.5 map容器插入和删除 1.6 map容器查找和统计 1.7 map容器排序 二.评委打分 三.年龄排序 四. 员工分组 一.map容器 1.1 简介 ① map容器中的所有元素都是pair. ② pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值). ③ 所有元素都会根据元素的键值自动排序. ④ map容器和multimap容器属于关联

  • C++深入分析STL中map容器的使用

    目录 1.map容器 2.map容器原理 3.map容器函数接口 4.使用示例 1.map容器 map是C++ STL的一个关联容器,它提供一对一的数据处理能力.其中,各个键值对的键和值可以是任意数据类型,包括 C++ 基本数据类型(int.double 等).使用结构体或类自定义的类型. 第一个可以称为关键字(key): 第二个可能称为该关键字的值(value): 该容器存储的都是 pair<const K, T> 类型(其中 K 和 T 分别表示键和值的数据类型)的键值对元素. 使用 ma

  • C++如何删除map容器中指定值的元素详解

    前言 大家都知道map容器是C++ STL中的重要一员,平时会遇到删除map容器中value为指定元素的问题,例如删除所有字符串为"123"或者能整除3的元素. 一.map容器下的方法说明 由于map容器下的方法较多,这里只列举代码中用到的几个方法: insert()方法: //插入val到pos的后面,然后返回一个指向这个元素的迭代器 iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &v

  • C++多线程实现电子词典

    本文实例为大家分享了C++多线程实现电子词典的具体代码,供大家参考,具体内容如下 // Dictionary.cpp : 定义控制台应用程序的入口点. //vs2013编译 //字典文件:https://pan.baidu.com/s/1YHtwptaq_V8j034U9_J96A #include "stdafx.h" #include <string> #include <vector> #include <iostream> #include

  • JavaScript实现Java中Map容器的方法

    本文实例讲述了JavaScript实现Java中Map容器的方法.分享给大家供大家参考,具体如下: 声明一下,JavaScript和Java的区别就像雷锋和雷峰塔的区别. 在Java中,Map是一种集合,用来存储Key-Value键值对的容器.根据键得到值,因此不允许键重复(重复了的覆盖),但允许值重复.JavaScript中的对象特性,就是不允许有相同的属性存在,和Java的Map非常的相似,所以可以利用这个特性在JavaScript中来实现Map容器,实现基本的增删查的操作. functio

  • PyQt5实现简易电子词典

    PyQt5是python中一个非常实用的GUI编程模块,功能十分强大.刚刚学完了Pyqt的编程,就迫不及待的写出了一个电子词典GUI程序.整个程序使用qt Desiner把整个gui界面做好,槽函数则自己写好的.电子词典实现了查询单词,查询历史记录,收藏和查看单词本的功能,另外为了是程序更加炫酷,还添加了一个启动界面.具体代码如下: 第一个为主程序代码,主要实现槽函数功能. from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import

  • python实现电子词典

    本文实例为大家分享了python实现电子词典的具体代码,供大家参考,具体内容如下 服务端 #!/usr/bin/env python3 from __future__ import unicode_literals # coding=utf-8 from socket import * import os import pymysql import time import sys import signal DICT_TEXT = "./dict.txt" HOST = '0.0.0.

  • Java通过工厂、Map容器创建对象的方法

    一.通过工厂+反射+配置文件创建对象 通过工厂+反射+配置文件获取对象 /** * @Author: Promsing * @Date: 2021/3/7 - 10:09 * @Description: 通过使用工厂+配置文件+反射实现创建对象 * @version: 1.0 */ public class AbsFactory { //声明一个变量(多例模式,每次通过工厂都会创建一个不同的实例) private static Object obj; public static Object c

  • python控制台英汉汉英电子词典

    用python实现了下控制台电子词典,数据来自有道,通过向有道发送http表单数据,然后将服务器返回的json数据解析得到翻译结果,代码比较简单,练练手! # coding=utf-8 # Filename: trans.py # Author: qianghaohao(CodeNutter) # Email: codenutter@foxmail.com # Program: 控制台电子词典 # import os import sys import requests import rando

  • 关于STL中的map容器的一些总结

    一.关于map的介绍 map是STL的一个容器,和set一样,map也是一种关联式容器.它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据.这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的.学习map我们一定要理解什么是一对一的数据映射?比如:一个班级中,每个学生的学号跟他的姓名就存

随机推荐