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

做问答营销的网站有哪些国产 wordpress 框架

做问答营销的网站有哪些,国产 wordpress 框架,专门做pp他的网站,进一步加强网站建设C 中的 it->second 和 it.second:迭代器与对象访问的微妙区别 在 C 编程中,迭代器和对象访问是常见的操作,但它们的语法和适用场景有所不同。最近在解决一些算法问题时,我遇到了一个有趣的现象:为什么在某些情况下可…

C++ 中的 it->secondit.second:迭代器与对象访问的微妙区别


在 C++ 编程中,迭代器和对象访问是常见的操作,但它们的语法和适用场景有所不同。最近在解决一些算法问题时,我遇到了一个有趣的现象:为什么在某些情况下可以使用 it->second,而在另一些情况下只能使用 it.second?本文将通过两个具体的例子来探讨这个问题,并帮助你更好地理解 C++ 的迭代器和对象访问机制。

背景:迭代器与对象访问

在 C++ 中,迭代器是一种泛化的指针,用于遍历容器中的元素。它们的行为类似于指针,但可以用于各种容器类型(如 vectorlistunordered_map 等)。而对象访问则是直接通过点操作符(.)来访问对象的成员。

  • it->second:适用于迭代器(指针类型),通过箭头操作符(->)访问其成员。
  • it.second:适用于对象(非指针类型),通过点操作符(.)访问其成员。

例子 1:分组同构字符串

在解决 LeetCode 49. Group Anagrams 问题时,我们需要将一组字符串按照它们的字符组成进行分组。以下是实现代码:

#include <vector>
#include <string>
#include <unordered_map>
#include <algorithm>class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {vector<vector<string>> ans;unordered_map<string, vector<string>> mp;for (string &str : strs) {string tmp = str;sort(tmp.begin(), tmp.end());mp[tmp].emplace_back(str);}for (auto &it : mp) {ans.push_back(it.second); // 正确的写法// ans.push_back(it->second); // 错误的写法,会导致编译错误}return ans;}
};

在这个例子中,it 是一个对象(pair<const Key, Value> 的引用),因此需要使用 it.second 来访问其成员。如果尝试使用 it->second,编译器会报错,因为 it 不是指针类型。

例子 2:两数之和

在解决 LeetCode 1. Two Sum 问题时,我们需要找到两个数的索引,使它们的和等于目标值。以下是实现代码:

#include <vector>
#include <unordered_map>class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> mp;for (int i = 0; i < nums.size(); i++) {auto it = mp.find(target - nums[i]);if (it != mp.end()) return {it->second, i}; // 正确的写法mp[nums[i]] = i;}return {};}
};

在这个例子中,it 是一个迭代器(unordered_map::iterator),因此需要使用 it->second 来访问其成员。如果尝试使用 it.second,编译器会报错,因为 it 是一个指针类型的对象。

关键区别

  • it.second:当 it 是一个对象(如 pair 的引用)时,使用点操作符(.)来访问其成员。
  • it->second:当 it 是一个迭代器(类似于指针)时,使用箭头操作符(->)来访问其成员。

总结

在 C++ 中,迭代器和对象访问的语法取决于 it 的类型:

  • 如果 it 是一个指针类型的迭代器(例如 unordered_map::iterator),那么可以使用 it->second
  • 如果 it 是一个对象(例如 pair 的引用),那么必须使用 it.second

在实际编程中,我们通常使用 auto 关键字来推导 it 的类型。如果你不确定 it 的类型,可以通过查看编译器的错误信息或使用 typeid 来确认。

希望这篇文章能帮助你更好地理解 C++ 中的迭代器和对象访问机制。如果你还有其他问题,欢迎在评论区留言讨论!


示例代码

以下是两个例子的完整代码,供参考:

分组同构字符串
#include <vector>
#include <string>
#include <unordered_map>
#include <algorithm>class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {vector<vector<string>> ans;unordered_map<string, vector<string>> mp;for (string &str : strs) {string tmp = str;sort(tmp.begin(), tmp.end());mp[tmp].emplace_back(str);}for (auto &it : mp) {ans.push_back(it.second); // 正确的写法// ans.push_back(it->second); // 错误的写法,会导致编译错误}return ans;}
};
两数之和
#include <vector>
#include <unordered_map>class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> mp;for (int i = 0; i < nums.size(); i++) {auto it = mp.find(target - nums[i]);if (it != mp.end()) return {it->second, i}; // 正确的写法mp[nums[i]] = i;}return {};}
};

参考资料

  • C++ Primer
  • Effective Modern C++

文章转载自:

http://6IFxngc6.dyxzn.cn
http://utarUEk8.dyxzn.cn
http://xIfjHSU7.dyxzn.cn
http://px0WZCx1.dyxzn.cn
http://MBCWZpHb.dyxzn.cn
http://2A06lbxv.dyxzn.cn
http://oopXX9H9.dyxzn.cn
http://h7f8HO8v.dyxzn.cn
http://da0LBLV3.dyxzn.cn
http://mKdqZAhZ.dyxzn.cn
http://kechczyV.dyxzn.cn
http://d8IdmIDd.dyxzn.cn
http://ermAYQjx.dyxzn.cn
http://nxm9N26b.dyxzn.cn
http://rgwQJR7M.dyxzn.cn
http://8meNn5Ul.dyxzn.cn
http://xrGaeLuW.dyxzn.cn
http://cDDqMGtv.dyxzn.cn
http://2cqWIGHx.dyxzn.cn
http://xY7hdwcr.dyxzn.cn
http://xs9TvBCV.dyxzn.cn
http://VMLTkDYF.dyxzn.cn
http://eGZmdfgv.dyxzn.cn
http://4g6ekUrt.dyxzn.cn
http://JsjmFxOz.dyxzn.cn
http://A53V2mfJ.dyxzn.cn
http://JeEPyWWG.dyxzn.cn
http://wsvrUGOg.dyxzn.cn
http://R0x6F1wo.dyxzn.cn
http://XJxe8awD.dyxzn.cn
http://www.dtcms.com/wzjs/718309.html

相关文章:

  • 营销型网站手机端enfold wordpress
  • 建设微信网站需要服务器做个商城小程序需要多少钱
  • 电商网站设计网站 建设 汇报
  • 说明电子商务网站的建设流程vr功能网站建设
  • 建设银行安徽 招聘网站网页设计代码和效果图
  • 做APP好还是建设网站好建设部一建查询网站
  • 网站开发和大数据开发区别网站建设费能不能认定为广告费
  • 做彩票网站模板注册安全工程师报名时间
  • 光谷软件园 网站建设常见的网站类型有
  • wordpress 商城站下载地址wordpress dux主题设置
  • 佛山外贸网站设计赣州做网站找谁
  • 移动网站设计wordpress带数据
  • asp.netmvc 做网站秦皇岛市教育局官网
  • 给女朋友做网站公司网站开发费用兴田德润在哪儿
  • 建设网站2013道路定额wordpress推送服务器
  • 企业网站备案材料外贸手机商城网站建设 深圳
  • 邢台做移动网站哪儿好考试源码网站wordpress
  • 龙岩网站建设套餐服务360优化大师安卓下载
  • 莆田市秀屿区建设局网站怎么做网站不会被屏蔽
  • 仙桃住房和城乡建设部网站上海网站建设加q.479185700
  • 如何修改网站备案wordpress清新Minty主题v4
  • 美容院怎么建立自己的网站售后服务网站建设
  • 北京网站优化公司如何app开发的基本步骤
  • 简单网站制作实验报告二级建造师报名官网
  • 个人做淘宝客网站不能备案吗上海的建设网站
  • 文学类网站怎么做天津去山西高铁做哪个网站
  • 中铝长城建设有限公司网站网站开发语言为
  • 58同城企业网站怎么做的杭州优化建筑设计
  • 中山建网站价格中国和城乡建设部网站首页
  • 网站建设开发合同书(终极版)品牌海外推广