using new with vector<int>*
Hello,
Here is an example of my problem:
Code:
#include <vector>
#include <cstdio>
using namespace std;
int main()
{
vector<int> *v;
int a;
scanf("%d", &a);
v=new vector<int>(a);
if(a<2)
return -1;
v[1]=1;
return 0;
}
When I try to compile it I get such error:
Quote:
$ g++ test.cpp
test.cpp: In function `int main()':
test.cpp:15: error: no match for 'operator=' in '*(v + 12u) = 1'
/usr/include/c++/3.4/bits/vector.tcc:131: note: candidates are: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = int, _Alloc = std::allocator<int>]
$
Without line with v[1]=1; it compiles but I don't know what I do wrong. I have ever example of it in Stroustrup's book but I don't know. I just want to have an outcome similar to
vector<int> v(a);
but I need v to have global so I have to
vector<int> *v;
and then in main() to create it with 'a' amount.
Can anyone help me?
Regards.