newbie here. I want to learn c++ for many reasons. Reason number 1 is the rich OpenCV library for computer vision, a field I want to specialize. I have been told that c++ is hard to learn so I want to ask c++ veterans if it's worth learning not only for computer vision but for general purpose too.
Bachelor in physics with intermediate knowledge in python.
It is about as difficult as any other programming language. Harder than Basic, maybe. Easier than APL. But not hard.
What will eat your time is the size of the language. C++ is very expansive, permitting a lot of different programming methodologies. A current favorite is template metaprogramming, which you can waste hours and hours of your life over. (For, IMHO, decreasing returns.)
The best way to get started is to jump right in. Find a simple OpenCV project, follow the “Hello world!” examples, and start spending time learning how to do the kinds of things you need to do to make stuff happen.
Frankly, most of your time will be spent learning OpenCV, once you get past the hurdle of basic C++ syntax and compiling a program into an executable.
Is it hard to learn? I personally don't think the basics of C++ are hard to learn. Even going beyond the basics are fairly straight forward. The best thing to do is not run at it, take it easy make sure you have the basics down before moving on to the next level.
Is it worth learning for general purpose too? Yes...but I'm biased.
You realize you are not likely to get an unbiased opinion here, a forum devoted to C++ programming.
I know I have to learn c++ for a lot of reasons. One because of the rich OpenCV library. Second, I want o to be proficient in an object-oriented language such as c++ so i want a motivational biased opinion. lol.
Heh, actually, I don’t much care for C++. I like its object model, and more recent versions of the Standard Library and Boost libraries are pretty sweet.
I do think my opinion on learning it is fair though, having studied and used more programming languages than I can count on all my digits combined.
Alas, C and C++ are the languages that make the world go around. Even when you start programming some device, like Kindles, that wants everything in Java, the underlying system is written in... C. (And C++.) With Java layered on top. Like a chocolate fudge brownie volcano cake with ice cream. (Sickeningly sweet, and also something you cannot escape.)
std::vector<int> a, b;
b = a; //this copy (duplicates) all the elements from `a' to `b'
//a[j] and b[j] has the same value, but they are different objects
b = 13; //a is not touched
cv::Mat a, b;
b = a; //this simply make `b' to reference the same elements than `a'
b.at<int>(42) = 13; //now a is also 13
cv::Mat works like you would expect it in python, if you want to duplicate the value you need to perform a .clone() operation
that was a source of bugs when I started with opencv, if you do want a copy, .clone() it.
why do the newer people always have less formal names (NO OFFENSE! its just the word "boy" with an "i" in your name) last time i saw a guy called something with a childish word
Was your first ever tag Rascake?
Mine was coolboy"birthday year". LOL. By the way, the more random name you have, the more likely you're able to use the same tag in multiple places. If you chose something like "Grime", chances are that this name is probably taken in a lot of places that you would want to use in the future. Would that make it more professional to have numbers after your name then? I'll leave that for you to decide. ;)