c++ 表达式必须包含指向类的指针类型
答案:2 悬赏:80
解决时间 2021-02-18 23:25
- 提问者网友:暗中人
- 2021-02-18 06:56
c++ 表达式必须包含指向类的指针类型
最佳答案
- 二级知识专家网友:酒者煙囻
- 2021-02-18 07:06
string的const_iterator对象的类的定义中没有empty这个函数,所以你引用该函数提示错误,可以看看STL源代码的。
追问:s应该是字符串向量,请问下字符串向量如何表示。。。书上还没看到过、、
追问:s应该是字符串向量,请问下字符串向量如何表示。。。书上还没看到过、、
全部回答
- 1楼网友:大漠
- 2021-02-18 07:26
去掉&& !i->empty(),改成如下,要这个函数做什么用?
for (string::const_iterator i = s.cbegin(); i != s.cend(); i++){
}
追问:!i->empty()这个要改成怎么样才能改对呢?
是用来判定迭代器当前所指字符串是否为空的
追答:for (string::const_iterator i = s.cbegin(); i != s.cend(); i++){
string *s1 = (string *) i ;
if ( s1->empty() ) break ; //这样试试吧
}
追问:不对哎,不存在适当的转换函数,书上写的s是字符串向量,字符串向量不是string吗。。。
追答:vector是容器 也就是个集合 没向量什么事!
string::const_iterator i =s.cbegin();
这里 i得到的是个字符指针,cout << *i ;会是一个一个的字符
for (string::const_iterator i = s.cbegin(); i != s.cend(); i++){
}
追问:!i->empty()这个要改成怎么样才能改对呢?
是用来判定迭代器当前所指字符串是否为空的
追答:for (string::const_iterator i = s.cbegin(); i != s.cend(); i++){
string *s1 = (string *) i ;
if ( s1->empty() ) break ; //这样试试吧
}
追问:不对哎,不存在适当的转换函数,书上写的s是字符串向量,字符串向量不是string吗。。。
追答:vector是容器 也就是个集合 没向量什么事!
string::const_iterator i =s.cbegin();
这里 i得到的是个字符指针,cout << *i ;会是一个一个的字符
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯