|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
std::vector<CString> vec;
vec::iterator iter; i can initiaze the iterator in vc6 like this $B!'(B iter = NULL, but it compile failed in vc2005, it tells me there is no acceptable conversion. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On 7/1/2008 2:41 PM, thinktwice wrote:
> std::vector<CString> vec; > vec::iterator iter; > > i can initiaze the iterator in vc6 like this : iter = NULL, but it > compile failed in vc2005, it tells me there is no acceptable > conversion. How true... Repeat after me: "An iterator is not a pointer". Try this: std::vector<CString> vec; std::vector<CString>::iterator iter = vec.end(); What problem do you try to solve? Regards, Stefan -- Stefan Naewe stefan dot naewe at atlas-elektronik dot com Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html Plain text mails only, please http://www.expita.com/nomime.html |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
thanks for your reply, i want to use a class data member whhose type
is a iteraotr, i might use in several class methods, but before use it i want to know whether this iterator is null or invalid On 7ÔÂ1ÈÕ, ÏÂÎç9ʱ00·Ö, Stefan Naewe <nos...@please..net> wrote: > On 7/1/2008 2:41 PM, thinktwice wrote: > > > std::vector<CString> vec; > > vec::iterator iter; > > > i can initiaze the iterator in vc6 like this £º iter = NULL, but it > > compile failed in vc2005, it tells me there is no acceptable > > conversion. > > How true... > Repeat after me: "An iterator is not a pointer". > > Try this: > > std::vector<CString> vec; > std::vector<CString>::iterator iter = vec.end(); > > What problem do you try to solve? > > Regards, > Stefan > -- > Stefan Naewe stefan dot naewe at atlas-elektronik dot com > Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html > Plain text mails only, please http://www.expita.com/nomime.html |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
thinktwice wrote:
> thanks for your reply, i want to use a class data member whhose type > is a iteraotr, i might use in several class methods, but before use it > i want to know whether this iterator is null or invalid (a) Please don't top-post. (b) Generally, it is impossible to determine through inspection whether an iterator is invalid. The point is that operations on the underlying container can invalidate iterators. The iterator is not required to detect that. (c) With a lot of care, you could use the container.end() value to indicate an invalid iterator. However, this is fragile because of the problems mentioned in (b). (d) It might be better to consider a redesign that avoids the need for checking the validity of the iterator. What is the underlying problem you are trying to solve? Best Kai-Uwe Bux > On 7?1?, ??9?00?, Stefan Naewe <nos...@please.net> wrote: >> On 7/1/2008 2:41 PM, thinktwice wrote: >> >> > std::vector<CString> vec; >> > vec::iterator iter; >> >> > i can initiaze the iterator in vc6 like this ? iter = NULL, but it >> > compile failed in vc2005, it tells me there is no acceptable >> > conversion. >> >> How true... >> Repeat after me: "An iterator is not a pointer". >> >> Try this: >> >> std::vector<CString> vec; >> std::vector<CString>::iterator iter = vec.end(); >> >> What problem do you try to solve? >> >> Regards, >> Stefan >> -- >> Stefan Naewe stefan dot naewe at atlas-elektronik dot com >> Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html >> Plain text mails only, please http://www.expita.com/nomime.html PS: also please don't quote signatures. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
On Jul 1, 2:41 pm, thinktwice <memorial...@gmail.com> wrote:
> std::vector<CString> vec; > vec::iterator iter; > i can initiaze the iterator in vc6 like this ? iter = NULL, but it > compile failed in vc2005, it tells me there is no acceptable > conversion. It's undefined behavior. VC 6.0 failed to tell you about the error; later versions do. -- James Kanze (GABI Software) email:james.kanze@gmail.com Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 |
|
![]() |
| Outils de la discussion | |
|
|