关于vector容器存储pair类型的数据, 是否有指针对应到first, second元素

irruptor 2008-12-05 10:46:05
如题,
string fst(older), sec(newer);
vector<pair<string, string> > pvec;
mpair=make_pair(fst,sec);
pvec.push_back(mpair);

这时是否存在只能能够寻址到vector容器内的mpair.first 和 mpair.second, 如果可以如何实现的,pvec.begin()指向哪个元素?
...全文
291 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq675927952 2008-12-05
  • 打赏
  • 举报
回复
up
cabbageA 2008-12-05
  • 打赏
  • 举报
回复
LZ,用LS的代码,简化一下是这样的:
vpair.push_back(make_pair("hello", "world"));
可以用来减少一些拷贝的开销。

LZ的文章要注意标点哦 -_-;
irruptor 2008-12-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fhtingtian 的回复:]
什么错,说一下
[/Quote]

sorry, 是我错了.
星羽 2008-12-05
  • 打赏
  • 举报
回复
#include "iostream"
#include "string"
#include "vector"
using namespace std;

int main()
{
vector<pair<string, string>> vpair;
pair<string, string> p1 = make_pair("hello", "world");

vpair.push_back(p1);

cout<<(*vpair.begin()).first<<endl;
cout<<(*vpair.begin()).second<<endl;

return 0;
}
bfhtian 2008-12-05
  • 打赏
  • 举报
回复
什么错,说一下
irruptor 2008-12-05
  • 打赏
  • 举报
回复
ls 如果 ivec.begin()指向一个个的pair, 那么是否就可以通过*和.操作,实现 *(ivec.begin()).first?
但是这样似乎会编译出错的
bill830711 2008-12-05
  • 打赏
  • 举报
回复
对于vector来说, pair 是一个整体,至于里面是什么,vector并不清楚
所以 pvec.begin() 指向的是一个个元素, pair
如果你想访问某个元素的第一或第二个
可以这么写

pvec[i].first pvec[i].second

或者pvec.begin().first (自己保证pvec不为空)

64,632

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧