I am kind of a beginner and just came across the concept of vectors in C++. I have a few questions about it  

**1. Is there a concept of 2-D vectors in C++? if yes, then how do i declare corresponding to a 2-D Matrix a[n][m]? Here, n and m are variables.  

2. How are vectors passed as arguments to functions? By default are they passed by reference or by value?  

3. Are there any performance benifits of vectors over arrays in C++?**