Hi Paolo,
This is a C++ related question and not a ROOT question.
I recommend you to read documentation about the STL
collection classes. What you do in your example
is illegal use of STL.
You should use the push_back function to enter a value
in your vector or the assignement operator, eg
vettore.reserve(10);
vettore[5] = 55;
Rene Brun
On Sat, 29 Mar
2003, Paolo ADRAGNA wrote:
> Hello,
> this is not exactly a question related to some ROOT feature, but I am a C++
> programmer newby, so I search for answers wherever I can: the RootTalk is a
> good place I suppose.
>
> I would like to use the "at" function of <vector> container but during
> compilation I get the error message
>
> no matching function for call to `vector<int, allocator<int> >::at (int)'
>
> I don't think my code is important because right after the error during
> compilation under ROOT environment I tried a small trial program, pippo.cpp:
>
> #include <vector>
> #include <iostream>
>
> void main()
> {
> std::vector<int> vettore;
> vettore.reserve(3);
> vettore.clear();
> vettore.at(5) = 56;
> cout << "Vettore 5 =" << vettore.at(5) << endl;
> }
>
> Disgracefully I got newly an error message:
>
> c++ -DHAVE_CONFIG_H -I. -I. -I.. -O2 -O0 -g3 -Wall -fno-exceptions
> -fno-check-new -c pippo.cpp
> pippo.cpp: In function `int main ()':
> pippo.cpp:10: no matching function for call to `vector
> allocator >::at (int)'
> pippo.cpp:11: no matching function for call to `vector
> allocator >::at (int)'
> gmake: *** [pippo.o] Error 1
> *** failed ***
>
> I also examined the header file stl_vector.h, but i didn't find any "::at"
> function. Where is my fault? Can you help me?
>
> Thank you,
>
> Paolo Adragna
>
>
> Paolo Adragna
> INFN Sezione di Pisa
>
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET