关于vector >

yshuise 2007-01-21 10:35:12


vector<vector<int> > m;
for(int i = 0; i <4; i++)
m[i].assign(4,0);


当变成vector<vector<Edge* > >m;
m.assign[i](4,NULL);为什么就不行了呢?

struct Edge{

};
...全文
424 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2007-01-22
  • 打赏
  • 举报
回复
for(int w = 0; w < V; w++)
adj[w].assign(V,NULL);
还是不对????!!!是不是只支持内部内型?外部内型不行?
我改成了嵌套迭代:
vector<vector<Edge*> >adj(V);
vector<vector<Edge*> >::iterator it;
vector<Edge*>::iterator sit;
vector<Edge*> iit(V);
for(it = adj.begin(); it != adj.end(); it++)
{
iit = *it;
for(sit = iit.begin(); sit != iit.end(); sit++)
*sit = NULL;
}

yshuise 2007-01-22
  • 打赏
  • 举报
回复
谢谢楼上各位了,这么大的差距居然没看出来。。。
  • 打赏
  • 举报
回复
m[i].assign(4,0);这个对
那这个呢m.assign[i](4,NULL);
assign使用[]进行调用么?
kenneth_lueng 2007-01-22
  • 打赏
  • 举报
回复
语法都不对吧??
magicblue 2007-01-22
  • 打赏
  • 举报
回复
should be "m[i].assign(4,NULL);", not "m.assign[i](4,NULL);"
yshuise 2007-01-21
  • 打赏
  • 举报
回复
m.assign[i](4,NULL);?
这是assign的声明,你看看你的写法符合那个
void assign(
size_type _Count,
const Type& _Val
);
template<class InputIterator>
void assign(
InputIterator _First,
InputIterator _Last
);
==================
vector<vector<int> > m;
for(int i = 0; i <4; i++)
m[i].assign(4,0);
这个对第一合法,参数为int。申请空间每个i申请空间为4,赋值0
  • 打赏
  • 举报
回复
m.assign[i](4,NULL);?
这是assign的声明,你看看你的写法符合那个
void assign(
size_type _Count,
const Type& _Val
);
template<class InputIterator>
void assign(
InputIterator _First,
InputIterator _Last
);

64,661

社区成员

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

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