pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何使用基于范圍的 for 循環(huán)修改地圖中的值?

How can I modify values in a map using range based for loop?(如何使用基于范圍的 for 循環(huán)修改地圖中的值?)
本文介紹了如何使用基于范圍的 for 循環(huán)修改地圖中的值?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我有一個基于范圍的 for 循環(huán)來迭代 foobar 中的元素,如下所示:

#include #include int main(){std::mapfoob??ar({{1,1}, {2,2}, {3,3}});for(自動 p : foobar){++p.second;std::cout <<{"<<p.first <<", " <<p.second <<"}";}std::cout <<std::endl;for(自動 q : foobar){std::cout <<{"<<q.第一個<<", " <<q.second<<"}";}std::cout <<std::endl;}

此代碼產(chǎn)生以下輸出:

{1, 2} {2, 3} {3, 4}{1, 1} {2, 2} {3, 3}

第一行被修改并打印在 for 循環(huán)中,第二行應(yīng)該打印相同的修改值.為什么輸出不匹配?對 std::map 的更改是否僅在循環(huán)范圍內(nèi)有效?有沒有辦法不僅可以訪問而且可以修改這些值?

可以在 cpp.sh 上找到 此代碼的運(yùn)行版本.

為了清楚起見,此處給出的示例經(jīng)過修改以匹配接受的答案.

解決方案

你可以把 auto 變成 auto& 如果你想改變/修改容器,例如:

#include #include int main(){std::mapfoob??ar({{1,1}, {2,2}, {3,3}});for(auto& p: foobar) {++p.second;std::cout <<'{' <<p.first <<", " <<p.second <<"}";}std::cout <<std::endl;}

編譯和輸出

<前>{1, 2} {2, 3} {3, 4}

現(xiàn)場示例

I have a range based for loop to iterate over elements in foobar as follows:

#include <map>
#include <iostream>

int main()
{
  std::map<int, int> foobar({{1,1}, {2,2}, {3,3}});

  for(auto p : foobar) 
  {
    ++p.second;
    std::cout << "{" << p.first << ", " << p.second << "} ";
  }
  std::cout << std::endl;

  for(auto q : foobar) 
  {
    std::cout << "{" << q.first << ", " << q.second << "} ";
  } 
  std::cout << std::endl;
}

This code produces the following output:

{1, 2} {2, 3} {3, 4}
{1, 1} {2, 2} {3, 3}

The first line is modified and printed inside a for loop and the second line supposedly prints the same modified values. Why don't the outputs match? Are changes to std::map only effective in the scope of the loop? Is there a way I can not only access but modify these values?

A running version of this code can be found on cpp.sh.

EDIT: The example given here was modified to match the accepted answer for clarity.

解決方案

You can turn auto into auto& if you want to mutate/modify the container, for instance:

#include <map>
#include <iostream>

int main()
{
  std::map<int, int> foobar({{1,1}, {2,2}, {3,3}});
  for(auto& p : foobar) {
    ++p.second;
    std::cout << '{' << p.first << ", " << p.second << "} ";
  }
  std::cout << std::endl;
}

compiles ands outputs

{1, 2} {2, 3} {3, 4} 

live example

這篇關(guān)于如何使用基于范圍的 for 循環(huán)修改地圖中的值?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Assertion failed (size.widthgt;0 amp;amp; size.heightgt;0)(斷言失敗(size.width0 amp;amp; size.height0))
Rotate an image in C++ without using OpenCV functions(在 C++ 中旋轉(zhuǎn)圖像而不使用 OpenCV 函數(shù))
OpenCV: process every frame(OpenCV:處理每一幀)
Why can#39;t I open avi video in openCV?(為什么我不能在 openCV 中打開 avi 視頻?)
OpenCV unable to set up SVM Parameters(OpenCV 無法設(shè)置 SVM 參數(shù))
Convert a single color with cvtColor(使用 cvtColor 轉(zhuǎn)換單一顏色)
主站蜘蛛池模板: LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 锻造液压机,粉末冶金,拉伸,坩埚成型液压机定制生产厂家-山东威力重工官方网站 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 深圳成考网-深圳成人高考报名网 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 安徽集装箱厂-合肥国彩钢结构板房工程有限公司 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 最新电影-好看的电视剧大全-朝夕电影网 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 沉降天平_沉降粒度仪_液体比重仪-上海方瑞仪器有限公司 | 除甲醛公司-甲醛检测-广西雅居环境科技有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) |