#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main(){
//first question
vector<vector<string> > sample{ {"Hello"}, {"World"} };
vector<vector<string> > test;
test[0][0]=sample[0][0]; //doesnt work
test[0][0].push_back(sample[0][0]); //still doesnt work
test.insert(0,0,sample[0][0]); //also doesnt work
//second question
test[1][0].push_back("Hello"); //doesnt work
//nothing works
//how?????????
}
I am trying to write C++ program that copies an element from a specific location of a vector into another specific location of a vector. Example: I want to copy element sample[0][0] which is "Hello" into test[0][0]. I tried above methods and nothing worked. Second question would be if I want to copy sample[0][1] which is "World" into test[100][100], how?
Ps. A copy of the errors
[test.cc 2020-02-29 12:51:27.385]
,,test.cc: In function ‘int main()’:
test.cc:5:75: error: no matching function for call to ‘std::vector<std::vector<std::__cxx11::basic_string<char> > >::vector(<brace-enclosed initializer list>)’
5 | vector<vector<string> > sample{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
| ^
In file included from /usr/include/c++/9/vector:67,
from /usr/include/c++/9/functional:62,
from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/9/algorithm:71,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
from test.cc:1:
/usr/include/c++/9/bits/stl_vector.h:650:2: note: candidate: ‘template<class _InputIterator, class> std::vector<_Tp, _Alloc>::vector(_InputIterator, _InputIterator, const allocator_type&)’
650 | vector(_InputIterator __first, _InputIterator __last,
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:650:2: note: template argument deduction/substitution failed:
test.cc:5:75: note: couldn’t deduce template parameter ‘_InputIterator’
5 | vector<vector<string> > sample{ { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
| ^
In file included from /usr/include/c++/9/vector:67,
from /usr/include/c++/9/functional:62,
from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
from /usr/include/c++/9/algorithm:71,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
from test.cc:1:
/usr/include/c++/9/bits/stl_vector.h:622:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
622 | vector(initializer_list<value_type> __l,
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:622:7: note: candidate expects 2 arguments, 3 provided
/usr/include/c++/9/bits/stl_vector.h:604:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
604 | vector(vector&& __rv, const allocator_type& __m)
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:604:7: note: candidate expects 2 arguments, 3 provided
/usr/include/c++/9/bits/stl_vector.h:586:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&, std::false_type) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::false_type = std::integral_constant<bool, false>]’
586 | vector(vector&& __rv, const allocator_type& __m, false_type)
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:586:23: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::vector<std::__cxx11::basic_string<char> > >&&’
586 | vector(vector&& __rv, const allocator_type& __m, false_type)
| ~~~~~~~~~^~~~
/usr/include/c++/9/bits/stl_vector.h:582:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&, const allocator_type&, std::true_type) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::true_type = std::integral_constant<bool, true>]’
582 | vector(vector&& __rv, const allocator_type& __m, true_type) noexcept
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:582:23: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::vector<std::__cxx11::basic_string<char> > >&&’
582 | vector(vector&& __rv, const allocator_type& __m, true_type) noexcept
| ~~~~~~~~~^~~~
/usr/include/c++/9/bits/stl_vector.h:572:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&, const allocator_type&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
572 | vector(const vector& __x, const allocator_type& __a)
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:572:7: note: candidate expects 2 arguments, 3 provided
/usr/include/c++/9/bits/stl_vector.h:569:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
569 | vector(vector&&) noexcept = default;
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:569:7: note: candidate expects 1 argument, 3 provided
/usr/include/c++/9/bits/stl_vector.h:550:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
550 | vector(const vector& __x)
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:550:7: note: candidate expects 1 argument, 3 provided
/usr/include/c++/9/bits/stl_vector.h:519:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const value_type&, const allocator_type&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::value_type = std::vector<std::__cxx11::basic_string<char> >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
519 | vector(size_type __n, const value_type& __value,
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:519:24: note: no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::vector<std::__cxx11::basic_string<char> > >::size_type’ {aka ‘long unsigned int’}
519 | vector(size_type __n, const value_type& __value,
| ~~~~~~~~~~^~~
/usr/include/c++/9/bits/stl_vector.h:507:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
507 | vector(size_type __n, const allocator_type& __a = allocator_type())
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:507:7: note: candidate expects 2 arguments, 3 provided
/usr/include/c++/9/bits/stl_vector.h:494:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >; std::vector<_Tp, _Alloc>::allocator_type = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
494 | vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:494:7: note: candidate expects 1 argument, 3 provided
/usr/include/c++/9/bits/stl_vector.h:484:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector() [with _Tp = std::vector<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::vector<std::__cxx11::basic_string<char> > >]’
484 | vector() = default;
| ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:484:7: note: candidate expects 0 arguments, 3 provided
[test.cc 2020-02-29 12:54:15.771]
,,test.cc: In function ‘int main()’:
test.cc:5:5: error: ‘test’ was not declared in this scope
5 | test[1][0].push_back("Hello");
| ^~~~
This all the crap I see everytime I compile something that have vectors in it.