Regarding the array/pointer argument: that's what creeps me about C++. With script languages like PHP things are much more intuitive. And when you talk about pointers in C++ it is really hard to grasp.
Yes, C++ is indeed a complex language. But if you once understand the core features, you have with C++ a very flexible, powerful toolbox at hand.
In my programs, I would like to keep away from managing the memory by myself.
That's what I want, too, and that's what I am currently doing. Using RAII, you don't have to manage the memory manually for the very most cases. Working directly with new and delete all the time is error-prone anyway, you should try to avoid it if possible. Classes like containers or smart-pointers help you managing the memory automatically. Unfortunately, many people think that C++ forces the programmer to free allocated memory explicitly like C. This is a spread mistake.
Well, I figured since I'm using C++ I might as well try to get as low as I can for optimization so I'm currently using arrays and pointers that are manually deleted.
This the wrong attidude. You are programming in C++, not C. And since abstraction costs almost nothing on modern compilers, why abandon it? There are points like safety, intuitive and easy usage, extensibility which are
much more important in the long term.
Your approach is also called premature optimization. You choose the tedious, error-prone way because you
assume the alternative is slower and this difference in speed is of important matter. You're not even sure! And usually, that assumption is wrong. Most often, other algorithms (rendering, collision detection, physics, ...) require the crucial part of time. Trying to optimize by guessing problems doesn't really lead to a faster, but mostly to a less stable application and to bad code. You should really not choose that way because you've once heard arrays would be faster than vectors. In my upper post, I showed you situations where the opposite applies.
When I have my first tool done that handles thousands of images, I'll convert a copy to std::vector and compare the result of the speeds.
Okay. Ensure that you test both approaches under the same conditions, otherwise the test is useless. Switch to release mode, enable full optimizations and deactivate any runtime-checks. For example, MSVC++ works with checked iterators by default.