当前位置: 首页 > news >正文

现在可以做网站么官网网站源码

现在可以做网站么,官网网站源码,网站维护大概要多久,网站平台在线提交功能题目来源:洛谷题库 文章目录 map例题map知识点map使用注意:map的常用用法 map例题 P3613【深基15.例2】寄包柜 普及- 题意 根据数据插入/查询 思路 map键值对可以根据柜子编号查找物品,但是柜子又有很多个,考虑数组或者map数组…

题目来源:洛谷题库

文章目录

    • map例题
    • map知识点
        • map
          • 使用注意:
          • `map`的常用用法

map例题

P3613【深基15.例2】寄包柜 普及-
题意

根据数据插入/查询

思路

map键值对可以根据柜子编号查找物品,但是柜子又有很多个,考虑数组或者map数组或者vector

数据约束

暂无

参考代码

#include <bits/stdc++.h>
#include <map>
using namespace std;
const int N = 100005;
int main() {//错误示范,主要是内存开销大导致溢出而出错,如果N小就没问题 
//    map<int,int> m[N];
//   int n,q;//q表示询问次数 
//   int op,i,j,k;//操作数、柜子i,格子j 
//   cin>>n>>q;
//   while(q--){
//   	cin>>op;
//   	if(op==1){
//   		cin>>i>>j>>k;
//   		m[i][j]=k; 
//	   }else{
//	   	cin>>i>>j;
//	   	cout<<m[i][j]<<endl;
//	   }//方法一:直接给键值对的内容留一定的空间,占用不同的地址即可map<int,int> m;int n,q;//q表示询问次数 int op,i,j,k;//操作数、柜子i,格子j cin>>n>>q;while(q--){cin>>op;if(op==1){cin>>i>>j>>k;m[i*N+j]=k; }else{cin>>i>>j;cout<<m[i*N+j]<<endl;}}//方法二:vecot<map>vector<map<int, int>> m(N);  // 使用 vector 动态分配 map 数组int n, q;int op, i, j, k;cin >> n >> q;while (q--) {cin >> op;if (op == 1) {cin >> i >> j >> k;m[i][j] = k;  // 更新柜子 i 中的格子 j 的值} else {cin >> i >> j;cout << m[i][j] << endl;  // 输出柜子 i 中格子 j 的值}}return 0;
}

map知识点

map

特点

  • 有序存储:根据键(key)对元素自动排序
  • 键值对存储:每个元素都是一个键值对(key-value),你可以通过键来查找值。
  • 查找/插入高效 O(log n):通过键可以非常快速地查找对应的值。

例子
想象你在一个图书馆找书,书架上的书按照编号顺序排列。如果你知道书的编号,你可以直接找到书的位置。图书馆工作人员能根据书名快速帮你找到对应的编号(键),从而查找书籍(值)。

在C++中,map(也称为关联容器或红黑树)是一种关联容器,它按照键值对(关键字和值)存储元素,容器元素是按照关键字排序,并且不允许有多个元素的关键字相同。通过键进行快速查找、插入和删除。

使用注意:
  • 第一个可以称为关键字(key),每个关键字只能在map中出现一次,第二个可能称为该关键字的值(value) ; 例如: map<string,int> a;可以将字符串映射为整数,map<double,int>a;可以将双精度浮点数映射为整数。
  • multimap允许存储相同键的元素
  • map中的元素是一对数据︰<关键字,数值>,这个概念在STL中有专门的数据结构叫pair,有一个相关函数make_pair和两个成员名first,second。可以直接类似Pair修改map的值
  • 不能修改map容器的关键字。map是按照关键字排序,当关键修改,容器不会重新调整排序,于是容器的有序性会被破坏,再再容器上进行查找等操作是会得到错误结果
  • map 是一个基于红黑树(或其他平衡树)的数据结构,每个 map 会为每个键值对分配内存。因此,map 的内存占用不仅仅是存储键值对的数据,还包含树结构的指针等开销。具体的内存占用取决于 map 中存储的元素数量和每个元素的大小。 map<int,int> m[N];可能单个数据就占16个字节 所以一般不用而是用vector<map<int, int>> m(N)代替
map的常用用法

1、创建map实例:

//这里的KeyType是唯一的标识符类型,ValueType是存储的数据类型。
map<KeyType, ValueType> myMap;

2、插入元素:

如果键已存在,新值会覆盖旧值

//方法一
myMap.insert({key, value});
//方法二-类似于数组,只是map的下表是键而非自增整数
myMap[key] = value;
//方法三:直接 插入pair即可
myMap.insert(make_pair("wsad",6));
myMap.insert(pair<string,int>("jkluio",10086));

3、查找元素:

find()回指定关键字的位置迭代器,指向键对应的元素,如不存在迭代器会指向map.end()。

map<type1,type2>::iterator it = myMap.find(key);
if (it != myMap.end()) {cout << "Value: " << it->second << endl;
}

4、遍历map:

//迭代器
map<string, int>::iterator it;
for(it=mp.begin();it!=mp.end();it++){cout<<it->first<<" "<<it->second<<endl;}

这会遍历整个map,打印出所有的键值对。

5、删除元素

如果键存在,元素会被删除;如果使用迭代器删除,必须确保迭代器指向map中的元素。

map<string, string> dictionary;    // 创建一个 map,键是 string,值是 string// 插入一些键值对dictionary["apple"] = "A fruit that is red, green, or yellow.";dictionary["banana"] = "A yellow fruit that is long and curved.";dictionary["cat"] = "A small domesticated carnivorous mammal.";// 查找并输出键 "apple" 对应的值map<string, string>::iterator it = dictionary.find("apple");if (it != dictionary.end()) {cout << "Found: " << it->first << " -> " << it->second << endl;} else {cout << "apple: Not found!" << endl;}// 检查某个键是否存在并删除它if (dictionary.find("banana") != dictionary.end()) {cout << "Deleting banana..." << endl;dictionary.erase("banana");} else {cout << "banana: Not found, cannot delete!" << endl;}// 再次查找并输出剩下的元素cout << "\nRemaining items in the dictionary:" << endl;for (map<string, string>::iterator it = dictionary.begin(); it != dictionary.end(); ++it) {cout << it->first << ": " << it->second << endl;}

例题:

http://www.yayakq.cn/news/419687/

相关文章:

  • 精选微信网站建设培训如何优化网站
  • 网站怎么注销主体wordpress 自定义post
  • 浏览器怎么打开网站服务器设置wordpress怎么在首页调用easing-slider
  • 做网站要多少钱联系方式做的最好的理财网站
  • 做app和做网站区别myeclipse网站开发
  • 网站建设数据收集方法网站开发形式有哪些
  • 青岛做教育的网站建设美工做图片网站
  • 投资网站建设公司多少钱微分销官网
  • 推荐上海网站建站品牌.net开发的网站 能做成app吗
  • 网站 前台 设计要求建立网站有免费的吗
  • 房地产公司网站建设与推广方案整合营销的概念
  • 网站建设报价明细及方案wordpress 站长主题
  • 协会网站信息平台建设网站开发老是弹广告
  • 兰州做网站哪个平台好wordpress手机不方便
  • 兰州做网站咨询兰州做网站公司郑州建站排名
  • 网站维护广州建网站泛站群
  • 网站站做地图软件wordpress改写
  • 推广网站排行榜wordpress音乐门户主题
  • 网站外包wordpress手机端装换
  • 重庆网站建设哪个好上海网站建设 paiky
  • 建各企业网站多少钱网站开发的书籍
  • 酒店类网站开发策略谷歌云安装wordpress
  • 贵阳网站建设方案策划门户网站申请
  • 网站设计 wordpress动画设计师培训
  • 购物网站排名2015网络服务器
  • 生活做爰网站前台网站建设
  • 网站怎么做才能得到更好的优化软件工程分为几个阶段
  • 茶类网站建设方案百度如何推广网站
  • 上海网站的建设成都网站开发工资
  • 白石洲网站建设深圳网络营销推广外包