{"id":2357,"date":"2015-05-20T19:58:24","date_gmt":"2015-05-20T18:58:24","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=2357"},"modified":"2015-06-02T11:56:54","modified_gmt":"2015-06-02T10:56:54","slug":"bug-of-the-day-5","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=2357","title":{"rendered":"-1 (Bug of the day 5)"},"content":{"rendered":"<pre><code>\r\nvector<int> vecB;\r\nvecB.resize(vecA.size()-1);\r\n\r\nfor(size_t i = 0; i < vecA.size(); ++i) {  \r\n  ...\r\n  vecB[i] = value\r\n  ...\r\n}\r\n<\/code><\/pre>\n<p>Na, wer findet ihn? <\/p>\n<p>Bei so etwas findet ich QT's QVector wieder besser als den Standard c++ vector. Qt macht zumindest bei Debug Einstellung eine Bereichs\u00fcberpr\u00fcfung. <\/p>\n<p>Ausser es wird die at() Funktion statt den operator() benutzt. Dann machen beide eine Bereichs\u00fcberpr\u00fcfung. Aber auch hier zeigen sich kleine Unterschiede welche die Philosophie von Qt und cpp Standardlib zeigen.<br \/>\nQt bietet nur eine cost Version der Funktion at() an. Der Grund liegt wahrscheinlich im intuitiven Verst\u00e4ndnis des Codes.<br \/>\nEin normaler Vector zugriff wie man das seit Jahrzehnten macht geht so:<\/p>\n<p>vec[i] = value;<\/p>\n<p>Das sieht sieht \"komisch\" aus:<\/p>\n<p>vec.at(i) = value;<\/p>\n<p>Qt f\u00fcr normale Programmierer mit wenig Schmerzen. c++ std f\u00fcr Profis mit viel Schmerzen :D<\/p>\n","protected":false},"excerpt":{"rendered":"<p>vector vecB; vecB.resize(vecA.size()-1); for(size_t i = 0; i < vecA.size(); ++i) { ... vecB[i] = value ... } Na, wer findet ihn? Bei so etwas findet ich QT's QVector wieder besser als den Standard c++ vector. Qt macht zumindest bei Debug Einstellung eine Bereichs\u00fcberpr\u00fcfung. Ausser es wird die at() Funktion statt den operator() benutzt. Dann [&hellip;]\n<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[14,17],"class_list":["post-2357","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-c","tag-cpp"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/2357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2357"}],"version-history":[{"count":2,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/2357\/revisions"}],"predecessor-version":[{"id":2382,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/2357\/revisions\/2382"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2357"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}