Re: Copying Few Octets from Vector
On 12 Apr., 17:18, smilesonisa...@gmail.com wrote:
I have written the small program in VC++ and it gives lot of errors.
[...]
[horrible piece of pseudo C++ code removed]
[...]
Can somebody help me in this regard?
Sure. The kinds of posts you wrote imply that you
- lack basic programming experiences (language agnostic)
- don't understanding the basics of C++
What to do about it?
- get a book/tutor for learning the C++ language
- get a book/tutor for learning programming
As a bonus -- I feel generous today -- let me decipher a couple of
compiler error messages for you:
1>c:\documents and settings\soni\my documents\visual studio
2005\projects\test1\test1\test1.cpp(15) : error C2664:
'std::vector<_Ty>::push_back' : cannot convert parameter 1 from 'const
char [2]' to 'const unsigned char &'
1> with
1> [
1> _Ty=unsigned char
1> ]
1> Reason: cannot convert from 'const char [2]' to 'const
unsigned char'
1> There is no context in which this conversion is possibl=
e
The literal "1" in push_back("1") is of type const char[2]. It's a
char array containing the character for the decimal one and a
terminating zero. Your vector stores unsigned char. There is no
conversion from char[2] to unsigned char.
In the case of push_back("94") the type of the argument is const char
[3].
etc
1>c:\documents and settings\soni\my documents\visual studio
2005\projects\test1\test1\test1.cpp(22) : error C2440:
'initializing' : cannot convert from 'unsigned int *' to 'unsigned
char *'
1> Types pointed to are unrelated; conversion requires
reinterpret_cast, C-style cast or function-style cast
You wrote
unsigned char* something = new unsigned[6];
"new unsigned[6]" is an expression that returns a pointer to an
unsigned integer. You seem to have forgotten the "char" after
"unsigned" in the new expression.
1>c:\documents and settings\soni\my documents\visual studio
2005\projects\test1\test1\test1.cpp(23) : error C2514:
'std::iterator' : class has no constructors
1> c:\program files\microsoft visual studio 8\vc\include
\xutility(486) : see declaration of 'std::iterator'
due to the line
const iterator it= pOctets.begin();
You used a using directive and pulled a lot of names into your global
scope. One of those names seems to be "iterator" (std::iterator from
the <iterator> header). This is NOT the iterator you want. In fact,
std::iterator *is* no iterator. It's just a base class that contains
some typedefs. You want to use your vector's iterator instead.
Cheers!
SG