Is vector part of managed C++? (Visual Studio 2010 Professional)

If you search the web with above keywords, you’ll get lots of misleading responses.
Very often though, List<> is suggested and the thread ends with a thanks.
What I hope is for someone to produce a definitive confirmation that vector is not part of managed C++ (so I can give up my search and move on). A reference would be nice.
The reason I insist on vectors is the random_shuffle() function.
1
2
srand(unsigned(time(NULL));
random_shuffle(cards.begin(), cards.end());

Does only vector have the random_shuffle function?
It’s so-ooo fast that it must’ve been optimized in assembly code. How else could they have achieved such superluminal speed?
You can write a custom Fisher-Yates shuffle algorithm that swaps elements of the array, but there will be a frustrating speed/performance penalty.
If you run the simulation in the range of 100 million and into a billion, then the lagging shuffle time becomes a deal-breaker.
I’m pretty sure that vector isn’t part of C#, and although List is C#’s equivalent of vector, List doesn’t have the shuffle function. Correct?

Another great C++ function is this:
accumulate(first, last, init, binary_op)
I don’t really care about the explanation as to why it’s so fast (optimized in assembly code?). I just want to use it.
Is accumulate part of managed C++? If not, is there an equivalent function in managed C++ (or C#)?

Will I have to settle with a disorganized mix of managed and unmanaged C++ codes?,...
See http://www.cplusplus.com/reference/algorithm/ for a list of ANSI C++ 99 algorithms. See http://en.cppreference.com/w/cpp/algorithm/accumulate for the accumulate() function. See http://www.cplusplus.com/reference/stl/vector/ for documentation on std::vector. All of them are unmanaged C++ and part of the Standard Template Library.

For managed classes you can search the MSDN Library (see http://www.msdn.com). List<> is one of such classes. It doesn't have a shuffle method and you can use random_shuffle() with other STL containers, not just std::vector<>.

Do you have to settle with a mix of managed and unmanaged? No. You could program in C#, which is a much cleaner language for .Net and simply P/Invoke anything else. That's what I do and that's why I don't see much value in learning C++/CLI right now.
vector is in managed C++/CLI, but you must use the namespace cliext and include the header <cliext>.
http://msdn.microsoft.com/en-us/library/bb386284.aspx

accumulate is also in managed C++/CLI.
http://msdn.microsoft.com/en-us/library/bb386060.aspx
It’s under numeric (STL/CLR).
http://msdn.microsoft.com/en-us/library/bb385117.aspx

random_shuffle is here.
http://msdn.microsoft.com/en-us/library/bb385047.aspx
http://msdn.microsoft.com/en-us/library/bb386172.aspx
Topic archived. No new replies allowed.