{"id":6303,"date":"2023-11-05T08:23:45","date_gmt":"2023-11-05T14:23:45","guid":{"rendered":"https:\/\/www.logikalsolutions.com\/wordpress\/?p=6303"},"modified":"2023-11-27T17:28:15","modified_gmt":"2023-11-27T23:28:15","slug":"stdlist","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/","title":{"rendered":"std::list &#8211; Example and Explanation"},"content":{"rendered":"\n<p>Our discussion of std::list, like <a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/a-stdvector-example-and-explaination\/\">our discussion of std::vector<\/a> will start with a bit of history. It wasn&#8217;t until the IT industry was inundated with <a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/soversion\/\">tiny x86 minds<\/a> that people &#8220;tried to do it all in RAM.&#8221; Before the PC we had real computers with real operating systems. Other than Assembler, our languages were robust. Every platform supported indexed files and so did the compiler for every language. When we needed a multiply linked list we did something like the following.<\/p>\n\n\n\n<p>VAX BASIC<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:4;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"! VAX BASIC\n\n        WHEN ERROR IN\n            L_ERR% = 0%\n            OPEN drawing_stats$ FOR OUTPUT AS FILE #dstat_chan%,    &amp;\n                ORGANIZATION INDEXED FIXED,                         &amp;\n                ALLOW NONE,                                         &amp;\n                RECORDTYPE FORTRAN,                                 &amp;\n                RECORDSIZE zillionare_stats_record_size,            &amp;\n                PRIMARY KEY D_STAT::ELM_NO,                         &amp;\n\t\tMAP D_STAT_MAP\n        USE\n            L_ERR% = ERR\n            PRINT &quot;Unable to open drawing stat output file&quot;; drawing_stats$\n            PRINT &quot;Error: &quot;;L_ERR%;&quot; &quot;;ERT$( L_ERR%)\n        END WHEN\n\n\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">! <\/span><span style=\"color: #4FC1FF\">VAX<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">BASIC<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4FC1FF\">WHEN<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">ERROR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">IN<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4FC1FF\">L_ERR<\/span><span style=\"color: #D4D4D4\">% = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">%<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4FC1FF\">OPEN<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">drawing_stats$<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">FOR<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">OUTPUT<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">AS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">FILE<\/span><span style=\"color: #D4D4D4\"> #<\/span><span style=\"color: #9CDCFE\">dstat_chan<\/span><span style=\"color: #D4D4D4\">%,    &amp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">ORGANIZATION<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">INDEXED<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">FIXED<\/span><span style=\"color: #D4D4D4\">,                         &amp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">ALLOW<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">NONE<\/span><span style=\"color: #D4D4D4\">,                                         &amp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">RECORDTYPE<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">FORTRAN<\/span><span style=\"color: #D4D4D4\">,                                 &amp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">RECORDSIZE<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">zillionare_stats_record_size<\/span><span style=\"color: #D4D4D4\">,            &amp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #4FC1FF\">PRIMARY<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">KEY<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C8C8C8\">D_STAT<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #4FC1FF\">ELM_NO<\/span><span style=\"color: #D4D4D4\">,                         &amp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #4FC1FF\">MAP<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">D_STAT_MAP<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4FC1FF\">USE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4FC1FF\">L_ERR<\/span><span style=\"color: #D4D4D4\">% = <\/span><span style=\"color: #4FC1FF\">ERR<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4FC1FF\">PRINT<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Unable to open drawing stat output file&quot;<\/span><span style=\"color: #D4D4D4\">; <\/span><span style=\"color: #9CDCFE\">drawing_stats$<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4FC1FF\">PRINT<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Error: &quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><span style=\"color: #4FC1FF\">L_ERR<\/span><span style=\"color: #D4D4D4\">%;<\/span><span style=\"color: #CE9178\">&quot; &quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><span style=\"color: #DCDCAA\">ERT$<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #4FC1FF\">L_ERR<\/span><span style=\"color: #D4D4D4\">%)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4FC1FF\">END<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">WHEN<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>DIBOL (DIgital&#8217;s Business Oriented Language)<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"    ;-----\n    ;   This is DIBOL\n    ;-----\n\n    if (.NOT. file_err_flg)\n    begin\n        try\n            open( mega_stat_chan=%syn_freechn,\n            &amp; o:i, \n            &amp; MSTAT_FILE_NAME ,\n            &amp; FDL:&quot;@MEGA_DAT:MEGA_STATS.FDL&quot; ,\n            &amp; RECTYPE:1)\n    \n        catch (e, @Exception)\n         begin\n            l_x = %SYSERR\n            writes( tt, %string( l_x) + \n            &amp;       &quot; result trying to open &quot; + MSTAT_FILE_NAME )\n            close( mega_chan)\n            file_err_flg = %TRUE\n            eof_flg = %TRUE\n         end\n        endtry\n    end\n\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">    ;-----<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    ;   <\/span><span style=\"color: #9CDCFE\">This<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">is<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">DIBOL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    ;-----<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (.<\/span><span style=\"color: #4FC1FF\">NOT<\/span><span style=\"color: #D4D4D4\">. <\/span><span style=\"color: #9CDCFE\">file_err_flg<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">begin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">try<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #DCDCAA\">open<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #9CDCFE\">mega_stat_chan<\/span><span style=\"color: #D4D4D4\">=%<\/span><span style=\"color: #9CDCFE\">syn_freechn<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            &amp; <\/span><span style=\"color: #9CDCFE\">o<\/span><span style=\"color: #D4D4D4\">:<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            &amp; <\/span><span style=\"color: #4FC1FF\">MSTAT_FILE_NAME<\/span><span style=\"color: #D4D4D4\"> ,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            &amp; <\/span><span style=\"color: #4FC1FF\">FDL<\/span><span style=\"color: #D4D4D4\">:<\/span><span style=\"color: #CE9178\">&quot;@MEGA_DAT:MEGA_STATS.FDL&quot;<\/span><span style=\"color: #D4D4D4\"> ,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            &amp; <\/span><span style=\"color: #4FC1FF\">RECTYPE<\/span><span style=\"color: #D4D4D4\">:<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">catch<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">e<\/span><span style=\"color: #D4D4D4\">, @<\/span><span style=\"color: #9CDCFE\">Exception<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">         <\/span><span style=\"color: #9CDCFE\">begin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">l_x<\/span><span style=\"color: #D4D4D4\"> = %<\/span><span style=\"color: #4FC1FF\">SYSERR<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #DCDCAA\">writes<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #9CDCFE\">tt<\/span><span style=\"color: #D4D4D4\">, %<\/span><span style=\"color: #DCDCAA\">string<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #9CDCFE\">l_x<\/span><span style=\"color: #D4D4D4\">) + <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            &amp;       <\/span><span style=\"color: #CE9178\">&quot; result trying to open &quot;<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #4FC1FF\">MSTAT_FILE_NAME<\/span><span style=\"color: #D4D4D4\"> )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #DCDCAA\">close<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #9CDCFE\">mega_chan<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">file_err_flg<\/span><span style=\"color: #D4D4D4\"> = %<\/span><span style=\"color: #4FC1FF\">TRUE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">eof_flg<\/span><span style=\"color: #D4D4D4\"> = %<\/span><span style=\"color: #4FC1FF\">TRUE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">         <\/span><span style=\"color: #9CDCFE\">end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">endtry<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">end<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>COBOL<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"*  COBOL\n...\nFILE-CONTROL.\n\n\n    SELECT DRAW-STATS\n        ASSIGN TO 'DRAWING_STATS'\n        ORGANIZATION IS INDEXED\n        ACCESS MODE IS RANDOM\n        RECORD KEY IS ELM_NO IN DSTATS-REC\n        LOCK MODE IS AUTOMATIC\n        FILE STATUS IS D-STAT.\n\nDATA DIVISION.\n\nFILE SECTION.\n\nFD  DRAW-STATS\n    IS GLOBAL\n    LABEL RECORDS ARE STANDARD.\n\n    COPY 'CDD_RECORDS.ZILLIONARE_STATS_RECORD' FROM DICTIONARY\n        REPLACING ZILLIONARE_STATS_RECORD BY DSTATS-REC.\n\nPROCEDURE DIVION.\n\n*\n*       Create new output files\n*\n    CALL 'LIB$SPAWN' USING BY DESCRIPTOR\n        'CREATE\/FDL=MEGA_DAT:MEGA_STATS.FDL DRAWING_STATS'.\n\n    OPEN I-O DRAW-STATS.\n...\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">*  COBOL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">FILE-CONTROL<\/span><span style=\"color: #D4D4D4\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">SELECT<\/span><span style=\"color: #D4D4D4\"> DRAW-STATS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">ASSIGN<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">TO<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&#39;DRAWING_STATS&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">ORGANIZATION<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">IS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">INDEXED<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">ACCESS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">MODE<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">IS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">RANDOM<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">RECORD KEY<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">IS<\/span><span style=\"color: #D4D4D4\"> ELM_NO <\/span><span style=\"color: #569CD6\">IN<\/span><span style=\"color: #D4D4D4\"> DSTATS-REC<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">LOCK<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">MODE<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">IS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">AUTOMATIC<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">FILE<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">STATUS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">IS<\/span><span style=\"color: #D4D4D4\"> D-STAT.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">DATA DIVISION<\/span><span style=\"color: #D4D4D4\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">FILE SECTION<\/span><span style=\"color: #D4D4D4\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">FD<\/span><span style=\"color: #D4D4D4\">  DRAW-STATS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">IS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">GLOBAL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">LABEL<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">RECORDS<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">ARE STANDARD<\/span><span style=\"color: #D4D4D4\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">COPY<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&#39;CDD_RECORDS.ZILLIONARE_STATS_RECORD&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">FROM<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">DICTIONARY<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">REPLACING<\/span><span style=\"color: #D4D4D4\"> ZILLIONARE_STATS_RECORD <\/span><span style=\"color: #569CD6\">BY<\/span><span style=\"color: #D4D4D4\"> DSTATS-REC.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">PROCEDURE<\/span><span style=\"color: #D4D4D4\"> DIVION.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*       Create new output files<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">CALL<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&#39;LIB$SPAWN&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">USING<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">BY<\/span><span style=\"color: #D4D4D4\"> DESCRIPTOR<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #CE9178\">&#39;CREATE\/FDL=MEGA_DAT:MEGA_STATS.FDL DRAWING_STATS&#39;<\/span><span style=\"color: #D4D4D4\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">OPEN<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">I-O<\/span><span style=\"color: #D4D4D4\"> DRAW-STATS.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">...<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>FORTRAN 77<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"     ! FORTRAN 77\n\n        INCLUDE 'MEGA_TEXT_LIB (FTN_MEGA_RECS)'\n\n...\n 220    OPEN (UNIT=K_DSTAT_CHAN, \n     1        FILE=DRAWING_STATS,\n     2        STATUS='NEW',\n     3        ORGANIZATION='INDEXED',\n     4        ACCESS='KEYED',\n     5        RECORDTYPE='FIXED',\n     6        FORM='UNFORMATTED',\n     7        RECL=K_ZILLIONARE_STATS_RECORD_SIZE\/4,\n     8        CARRIAGECONTROL='FORTRAN',\n     9        KEY=(1:4:INTEGER),\n     1        DISP='KEEP',\n     2        IOSTAT=L_D_STAT,\n     3        SHARED,\n     4        ERR=996)\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">     ! FORTRAN <\/span><span style=\"color: #F78C6C\">77<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        INCLUDE <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">MEGA_TEXT_LIB (FTN_MEGA_RECS)<\/span><span style=\"color: #89DDFF\">&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">220<\/span><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF\">OPEN<\/span><span style=\"color: #BABED8\"> (<\/span><span style=\"color: #89DDFF\">UNIT=<\/span><span style=\"color: #BABED8\">K_DSTAT_CHAN, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #BABED8\">        <\/span><span style=\"color: #89DDFF\">FILE=<\/span><span style=\"color: #BABED8\">DRAWING_STATS,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\">        <\/span><span style=\"color: #89DDFF\">STATUS=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">NEW<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #BABED8\">        ORGANIZATION<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">INDEXED<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #BABED8\">        ACCESS<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">KEYED<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">5<\/span><span style=\"color: #BABED8\">        RECORDTYPE<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">FIXED<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">6<\/span><span style=\"color: #BABED8\">        FORM<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">UNFORMATTED<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">7<\/span><span style=\"color: #BABED8\">        RECL<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\">K_ZILLIONARE_STATS_RECORD_SIZE<\/span><span style=\"color: #89DDFF\">\/<\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">8<\/span><span style=\"color: #BABED8\">        CARRIAGECONTROL<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">FORTRAN<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">9<\/span><span style=\"color: #BABED8\">        <\/span><span style=\"color: #89DDFF\">KEY=<\/span><span style=\"color: #BABED8\">(1:4:<\/span><span style=\"color: #82AAFF\">INTEGER<\/span><span style=\"color: #BABED8\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #BABED8\">        DISP<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">KEEP<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\">        IOSTAT<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\">L_D_STAT,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #BABED8\">        SHARED,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">     <\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #BABED8\">        ERR<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F78C6C\">996<\/span><span style=\"color: #BABED8\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Our Key Was Part of the Data<\/h2>\n\n\n\n<p>Unlike std::map, std::set and the other sorted containers, our key was not separate from the data. Our key could be the entire record and the record could consist of just a single field. We had random access, and sequential access. If you had multiple keys for a record, once you performed a keyed hit to establish a key of reference, every sequential read after that read in that key&#8217;s order.<\/p>\n\n\n\n<p>Take a look at continuation 9 in the FORTRAN IV snippet. It identifies bytes one through four as a key of integer type. Guess it doesn&#8217;t mean much to you without the record layout.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Drawing_Stats \nElm_no          integer k0 \nHit_count       integer \nLast_draw_no    integer\nSince_last      integer\nCurr_seq        integer\nLongest_seq     integer\nPct_hits        double\nMax_btwn        integer\nAve_btwn        double<\/pre>\n\n\n\n<p>In the world of professional software development we number our keys. K0 is always the primary key.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Yes We Could Sort<\/h2>\n\n\n\n<p>If need be we could write things to a sequential file then use the system sort utility to create a new sorted file and read that as input. Usually we did this in a designated &#8220;scratch&#8221; area so the system managers could quickly reclaim the space if we happened to forget.<\/p>\n\n\n\n<p>A large part of this discussion is pointing out the fact we would never sort more than a tiny handful of items that physically could not number in the triple digits.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Consider Resource Limitations<\/h2>\n\n\n\n<p>It was true in the 1970s and it is still true today; You will always have more physical storage than physical RAM. Not all storage may be online at all times, (i.e. tape library machines) but that number will always be bigger.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/imgs.search.brave.com\/Oj1X4gLHqCl8MmDRPztVsiZ9a-6HY-VHLAz_J9n1EMc\/rs:fit:860:0:0\/g:ce\/aHR0cHM6Ly91cGxv\/YWQud2lraW1lZGlh\/Lm9yZy93aWtpcGVk\/aWEvY29tbW9ucy9j\/L2M5L1N0b3JhZ2VU\/ZWtfUG93ZGVyaG9y\/bl90YXBlX2xpYnJh\/cnkuanBn\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Automated tape library system<\/figcaption><\/figure>\n<\/div>\n\n\n<p>If you think these things are going away any time soon, think again. <a href=\"https:\/\/www.zdnet.com\/article\/ibms-world-record-330tb-uncompressed-data-on-a-palm-sized-tape-cartridge\/\">IBM can store 330TB uncompressed on a palm sized tape cartridge<\/a>. Take a moment and count just how many tape cartridge slots you can see in this dark robot library picture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">If You Ever!<\/h2>\n\n\n\n<p>If you ever create something like <a href=\"https:\/\/doc.qt.io\/qt-5\/qsqltablemodel.html\">QSqlTableModel<\/a> or <a href=\"https:\/\/doc.qt.io\/qt-6\/qtableview.html\">QTableView<\/a> where the model has to physically load all of the cursor results into RAM instead of using the cursor contents directly, when I die I will come back and haunt your children in a manner that makes Freddy Krueger seem like Jimminy Cricket. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/imgs.search.brave.com\/S_iSF-eRVlU6yabgSqGKG8TAZW-yuiTNbzOvsLwReGk\/rs:fit:500:0:0\/g:ce\/aHR0cHM6Ly9wZW9w\/bGUuY29tL3RobWIv\/N3FFR3djcE5BQW5K\/SHVJRFI5R1dibjRW\/a0pZPS8xNTAweDAv\/ZmlsdGVyczpub191\/cHNjYWxlKCk6bWF4\/X2J5dGVzKDE1MDAw\/MCk6c3RyaXBfaWNj\/KCk6Zm9jYWwoNTk5\/eDA6NjAxeDIpL1Jv\/YmVydC1FbmdsdW5k\/LTRhYjQwMTMyNTA4\/MjRlYjE5YjI5OWEy\/NDJkODY5NDgxLmpw\/Zw\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Freddy Krueger from Nightmare on Elm Street<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/imgs.search.brave.com\/nH6gm3B6kmIpV34tZqpIgmmjFE_n4JSNVdSGobriX5U\/rs:fit:500:0:0\/g:ce\/aHR0cHM6Ly9pLnBp\/bmltZy5jb20vb3Jp\/Z2luYWxzL2M1LzEz\/L2EyL2M1MTNhMjQ4\/YWZkOTNmZDQ2NDVi\/MjRmZmU4OGY4N2Mz\/LmpwZw\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Jiminy Cricket<\/figcaption><\/figure>\n<\/div>\n\n\n<p>I will haunt their offspring and every generation thereafter until your heirs decide it is best not to procreate and thus your DNA is eliminated from the gene pool.<\/p>\n\n\n\n<p>Today&#8217;s databases can return <a href=\"https:\/\/www.2ndquadrant.com\/en\/blog\/postgresql-maximum-table-size\/\">massive amounts of data from a single table<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"771\" height=\"142\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/postgresql-table-size.png\" alt=\"\" class=\"wp-image-6305\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/postgresql-table-size.png 771w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/postgresql-table-size-300x55.png 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/postgresql-table-size-768x141.png 768w\" sizes=\"(max-width: 771px) 100vw, 771px\" \/><\/figure>\n<\/div>\n\n\n<p>When you issue<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"SELECT * FROM MY_TABLE;\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F78C6C\">SELECT<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">FROM<\/span><span style=\"color: #BABED8\"> MY_TABLE;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>It is theoretically possible the resulting cursor could contain 32TB if the default was taken at database creation time. It could also return 128TB. I am ranting about this because I have seen people select from a database and load it into a list or other in-memory container without ever once checking the size of the data. Yes, I saw it because a program that had &#8220;run for years&#8221; was crashing nobody knew why.<\/p>\n\n\n\n<p>Sadly QSqlTableModel is in production in a lot of places using PostgreSQL databases like a ticking time bomb where one day the application will just crash because the table in the database got too big to load. Don&#8217;t <em><strong>you<\/strong><\/em> create ticking time bombs!<\/p>\n\n\n\n<p>A crash is actually the best possible outcome. Worse yet would be to just ignore what didn&#8217;t fit without crashing or throwing any kind of exception to be caught and handled. The user will continue on for years not having all of the data, eventually not having even correct data, because someone&#8217;s code quietly failed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Never Jump Right In With the New Stuff<\/h2>\n\n\n\n<p>I need to issue you yet another cautionary tale <a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/trigraphs\/\">like I did with trigraphs<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"615\" height=\"160\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/std-list-removed.png\" alt=\"\" class=\"wp-image-6306\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/std-list-removed.png 615w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/std-list-removed-300x78.png 300w\" sizes=\"(max-width: 615px) 100vw, 615px\" \/><\/figure>\n<\/div>\n\n\n<p>The day your shop changes to C++20 as it&#8217;s compilation standard you lose a bunch of operators for std::list.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Academics Hose Things<\/h2>\n\n\n\n<p>C++ is a language at an age where new academics are replacing the dying old academics. Judging from many of the decisions being made neither worked a day in their life writing and supporting production code. They certainly never spent even one day in a COBOL class.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"    01 STATUS-VARIABLES.\n       05 IN-STAT           PIC X(2).\n       05 DRAW-STAT         PIC X(2).\n       05 ARE-THERE-MORE-RECORDS    PIC X VALUE 'Y'.\n          88 THERE-ARE-MORE-RECORDS       VALUE 'Y'.\n          88 THERE-ARE-NO-MORE-RECORDS    VALUE 'N'.\n       05 IS-OPEN-FLAG      PIC X.\n          88 FILE-IS-OPEN   VALUE 'Y'.\n\n...\n\n    PERFORM B010-LOAD-DATA\n        UNTIL THERE-ARE-NO-MORE-RECORDS.\n\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #F78C6C\">01<\/span><span style=\"color: #BABED8\"> STATUS-VARIABLES.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">       <\/span><span style=\"color: #F78C6C\">05<\/span><span style=\"color: #BABED8\"> IN-STAT           <\/span><span style=\"color: #C792EA\">PIC X<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\">).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">       <\/span><span style=\"color: #F78C6C\">05<\/span><span style=\"color: #BABED8\"> DRAW-STAT         <\/span><span style=\"color: #C792EA\">PIC X<\/span><span style=\"color: #BABED8\">(<\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #BABED8\">).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">       <\/span><span style=\"color: #F78C6C\">05<\/span><span style=\"color: #BABED8\"> ARE-THERE-MORE-RECORDS    <\/span><span style=\"color: #C792EA\">PIC X<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">VALUE<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">Y<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">          <\/span><span style=\"color: #F78C6C\">88<\/span><span style=\"color: #BABED8\"> THERE-ARE-MORE-RECORDS       <\/span><span style=\"color: #89DDFF\">VALUE<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">Y<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">          <\/span><span style=\"color: #F78C6C\">88<\/span><span style=\"color: #BABED8\"> THERE-ARE-NO-MORE-RECORDS    <\/span><span style=\"color: #89DDFF\">VALUE<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">N<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">       <\/span><span style=\"color: #F78C6C\">05<\/span><span style=\"color: #BABED8\"> IS-OPEN-FLAG      <\/span><span style=\"color: #C792EA\">PIC X.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">          <\/span><span style=\"color: #F78C6C\">88<\/span><span style=\"color: #BABED8\"> FILE-IS-OPEN   <\/span><span style=\"color: #89DDFF\">VALUE<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">Y<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #BABED8\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">...<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">PERFORM<\/span><span style=\"color: #BABED8\"> B010-LOAD-DATA<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">        <\/span><span style=\"color: #89DDFF\">UNTIL<\/span><span style=\"color: #BABED8\"> THERE-ARE-NO-MORE-RECORDS.<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Things that are yes\/no boolean type entities start with either &#8220;are&#8221; or &#8220;is&#8221; depending on what will be more grammatically correct. 88 levels are where we assigned names to values a field could have. You only had to assign names for interesting values.<\/p>\n\n\n\n<p>This rant is because everyone of these containers has an empty() method that should be isEmpty() [or is_empty() if we finally purge Pascal from C++]. If it had that name none of you would code it assuming it emptied the container. No, <strong>to empty a container you must use clear()<\/strong> because empty() only tells you if the container is empty. Isn&#8217;t that obvious?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Code<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ global includes before local\n#include <iostream&gt;\n#include <list&gt;\n#include <algorithm&gt;\n#include <random&gt;\n#include <functional&gt;\n\n#include &quot;config.h&quot;\n\nvoid dumpList(std::list<double&gt; &amp;dblList)\n{\n\tif (!dblList.empty())  \/\/ this is the proper use of empty()\n\t{\n\t\tstd::cout << &quot; { &quot;;\n\t\tfor (double dbl : dblList)\n\t\t{\n\t\t\tstd::cout << dbl << &quot;, &quot;;\n\t\t}\n\t\tstd::cout << &quot;}; \\n&quot;;\n\t}\n\telse\n\t{\n\t\tstd::cout << &quot; The list is empty\\n&quot;;\n\t}\n}\n\nbool tooBig( std::list<double&gt; &amp;dblList)\n{\n\tbool retVal = false;\n\n\tif ((dblList.size() + 1000) &gt; dblList.max_size())\n\t{\n\t\tretVal = true;\n\t}\n\n\treturn retVal;\n}\n\nbool getUserInput(std::list<double&gt; &amp;dblList)\n{\n\tif (tooBig( dblList))\n\t{\n\t\treturn false;\n\t}\n\n\tbool retVal = true;\n\tdouble dbl {};\n\n\tstd::cout << &quot;Enter a floating point value or 999 to quit: &quot;;\n\tstd::cin &gt;&gt; dbl;\n\n\tif (dbl == 999)\n\t{\n\t\tretVal = false;\n\t}\n\telse if ((dblList.size() % 2) == 0)\n\t{\n\t\tdblList.push_front( dbl);\t\/\/ add to front of list\n\t}\n\telse\n\t{\n\t\tdblList.push_back( dbl);\t\/\/ add to back\/end of list\n\t}\n\n\treturn retVal;\n}\n\nint main(int argc, char **argv)\n{\n\tstd::cout << &quot;ListContainerExample&quot; << std::endl;\n\tstd::cout << &quot;Version &quot; << ListContainerExample_VERSION_MAJOR << &quot;.&quot;\n\t\t\t<< ListContainerExample_VERSION_MINOR << std::endl;\n\n\tstd::list<double&gt; myList { 3.14159, 0.32, -0.60, -505.123, 987.01 };\n\n\tstd::cout << &quot;list before user input: &quot;;\n\tdumpList( myList);\n\n\twhile (getUserInput(myList));  \t\/\/ this is not an infinite loop\n\t\t\t\t\t\t\t\t\t\/\/ some might want to use a do while here\n\t\t\t\t\t\t\t\t\t\/\/ but that creates needless temporaries\n\tstd::cout << &quot;list after user input: &quot;;\n\tdumpList( myList);\n\n\t\/\/ NEVER USE AUTO IN PRODUCTION CODE!\n\t\/\/\n\tstd::list<double&gt;::iterator it = find(myList.begin(), myList.end(), -505.123);\n\tif (it != myList.end())\n\t{\n\t\tmyList.insert(it, -0.60);\n\t}\n\n\tstd::cout << &quot;list after insert: &quot;;\n\tdumpList( myList);\n\n\tmyList.sort( std::less<double&gt;());\n\tstd::cout << &quot;list after descending sort: &quot;;\n\tdumpList( myList );\n\n\tmyList.unique();\n\tstd::cout << &quot;list after removing duplicates: &quot;;\n\tdumpList( myList );\n\n\tmyList.sort();\n\tstd::cout << &quot;list after ascending sort: &quot;;\n\tdumpList( myList );\n\n\tstd::cout << &quot;adding some more values\\n&quot;;\n\n\tdouble lowerBound = 0;\n\tdouble upperBound = 10000;\n\n\tstd::uniform_real_distribution<double&gt; unif( lowerBound, upperBound);\n\tstd::default_random_engine rndEngine;\n\n\tfor (int jjj=0; jjj < 20; jjj++)\n\t{\n\t\tmyList.push_back( unif(rndEngine) );\n\t}\n\tstd::cout << &quot;after adding numbers: &quot;;\n\tdumpList( myList );\n\n\t\/\/ You really have to use a lambda here. One of the few times I support\n\t\/\/ use of a lambda. Mostly they should be avoided, especially if they return\n\t\/\/ values and could be executed across threads like a signal\/slot arrangement.\n\t\/\/\n\tmyList.remove_if( [](double d) { return d < 0.0;});\n\tmyList.sort();\n\tstd::cout << &quot;after removing negatives and sorting: &quot;;\n\tdumpList( myList);\n\n\treturn 0;\n}\n\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/\/ global includes before local<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">#include<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">iostream<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">#include<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">list<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">#include<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">algorithm<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">#include<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">random<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">#include<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C3E88D\">functional<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">#include<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">config.h<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">void<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #FFCB6B\">list<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C792EA\">&amp;<\/span><span style=\"color: #BABED8; font-style: italic\">dblList<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(!<\/span><span style=\"color: #BABED8\">dblList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">empty<\/span><span style=\"color: #89DDFF\">())<\/span><span style=\"color: #464B5D; font-style: italic\">  \/\/ this is the proper use of empty()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #F07178\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\"> { <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #F07178\"> dbl <\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\"> dblList<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #F07178\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> dbl <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">, <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #F07178\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">}; <\/span><span style=\"color: #BABED8\">\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #F07178\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\"> The list is empty<\/span><span style=\"color: #BABED8\">\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">bool<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">tooBig<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #FFCB6B\">list<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C792EA\">&amp;<\/span><span style=\"color: #BABED8; font-style: italic\">dblList<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #C792EA\">bool<\/span><span style=\"color: #BABED8\"> retVal <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">false;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">((<\/span><span style=\"color: #BABED8\">dblList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">size<\/span><span style=\"color: #89DDFF\">()<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">1000<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> dblList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">max_size<\/span><span style=\"color: #89DDFF\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\tretVal <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">true;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> retVal<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">bool<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">getUserInput<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #FFCB6B\">list<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C792EA\">&amp;<\/span><span style=\"color: #BABED8; font-style: italic\">dblList<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">tooBig<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> dblList<\/span><span style=\"color: #89DDFF\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">false;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #C792EA\">bool<\/span><span style=\"color: #BABED8\"> retVal <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">true;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #BABED8\"> dbl <\/span><span style=\"color: #89DDFF\">{};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Enter a floating point value or 999 to quit: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cin <\/span><span style=\"color: #89DDFF\">&gt;&gt;<\/span><span style=\"color: #BABED8\"> dbl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\">dbl <\/span><span style=\"color: #89DDFF\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">999<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\tretVal <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">false;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">((<\/span><span style=\"color: #BABED8\">dblList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">size<\/span><span style=\"color: #89DDFF\">()<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">%<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">==<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">dblList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">push_front<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F07178\"> dbl<\/span><span style=\"color: #89DDFF\">);<\/span><span style=\"color: #464B5D; font-style: italic\">\t\/\/ add to front of list<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">dblList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">push_back<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F07178\"> dbl<\/span><span style=\"color: #89DDFF\">);<\/span><span style=\"color: #464B5D; font-style: italic\">\t\/\/ add to back\/end of list<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> retVal<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">int<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">main<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #C792EA\">int<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8; font-style: italic\">argc<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C792EA\">char<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #C792EA\">**<\/span><span style=\"color: #BABED8; font-style: italic\">argv<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">ListContainerExample<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Version <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> ListContainerExample_VERSION_MAJOR <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">.<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t\t\t<\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> ListContainerExample_VERSION_MINOR <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">list<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> myList <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">3.14159<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">0.32<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #F78C6C\">0.60<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #F78C6C\">505.123<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">987.01<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">list before user input: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">while<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">getUserInput<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\">myList<\/span><span style=\"color: #89DDFF\">));<\/span><span style=\"color: #464B5D; font-style: italic\">  \t\/\/ this is not an infinite loop<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t\t\t\t\t\t\t\t\/\/ some might want to use a do while here<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t\t\t\t\t\t\t\t\/\/ but that creates needless temporaries<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">list after user input: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\/\/ NEVER USE AUTO IN PRODUCTION CODE!<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #FFCB6B\">list<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;::<\/span><span style=\"color: #BABED8\">iterator it <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">find<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\">myList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">begin<\/span><span style=\"color: #89DDFF\">(),<\/span><span style=\"color: #BABED8\"> myList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">end<\/span><span style=\"color: #89DDFF\">(),<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #F78C6C\">505.123<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\">it <\/span><span style=\"color: #89DDFF\">!=<\/span><span style=\"color: #BABED8\"> myList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">end<\/span><span style=\"color: #89DDFF\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">myList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">insert<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F07178\">it<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">-<\/span><span style=\"color: #F78C6C\">0.60<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">list after insert: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tmyList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sort<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #82AAFF\">less<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">list after descending sort: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList <\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tmyList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">unique<\/span><span style=\"color: #89DDFF\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">list after removing duplicates: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList <\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tmyList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sort<\/span><span style=\"color: #89DDFF\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">list after ascending sort: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList <\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">adding some more values<\/span><span style=\"color: #BABED8\">\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #BABED8\"> lowerBound <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #BABED8\"> upperBound <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">10000<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">uniform_real_distribution<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">unif<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> lowerBound<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #BABED8\"> upperBound<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">default_random_engine rndEngine<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #C792EA\">int<\/span><span style=\"color: #BABED8\"> jjj<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> jjj <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">20<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #BABED8\"> jjj<\/span><span style=\"color: #89DDFF\">++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">myList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">push_back<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #82AAFF\">unif<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F07178\">rndEngine<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">after adding numbers: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList <\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\/\/ You really have to use a lambda here. One of the few times I support<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\/\/ use of a lambda. Mostly they should be avoided, especially if they return<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\/\/ values and could be executed across threads like a signal\/slot arrangement.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tmyList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">remove_if<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">[](<\/span><span style=\"color: #C792EA\">double<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #BABED8; font-style: italic\">d<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> d <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0.0<\/span><span style=\"color: #89DDFF\">;});<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tmyList<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sort<\/span><span style=\"color: #89DDFF\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #BABED8\">cout <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">after removing negatives and sorting: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #82AAFF\">dumpList<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8\"> myList<\/span><span style=\"color: #89DDFF\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"cmake_minimum_required(VERSION 3.10)\n\n# Set some basic project attributes\nproject (ListContainerExample\n\tVERSION 0.1\n\tDESCRIPTION &quot;A std::list Project&quot;)\n\nset(CMAKE_CXX_STANDARD_REQUIRED ON)\nset(CMAKE_CXX_STANDARD 17)\n\n# This project will output an executable file\nadd_executable(${PROJECT_NAME} ListContainerExample.cpp)\n\n# Create a simple configuration header\nconfigure_file(config.h.in config.h)\n\n# Include the configuration header in the build\ntarget_include_directories(${PROJECT_NAME} PUBLIC &quot;${PROJECT_BINARY_DIR}&quot;)\n\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF\">cmake_minimum_required<\/span><span style=\"color: #BABED8\">(VERSION 3.10)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># Set some basic project attributes<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">project<\/span><span style=\"color: #BABED8\"> (ListContainerExample<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tVERSION 0.1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">\tDESCRIPTION <\/span><span style=\"color: #C3E88D\">&quot;A std::list Project&quot;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">set<\/span><span style=\"color: #BABED8\">(CMAKE_CXX_STANDARD_REQUIRED <\/span><span style=\"color: #89DDFF\">ON<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">set<\/span><span style=\"color: #BABED8\">(CMAKE_CXX_STANDARD 17)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># This project will output an executable file<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">add_executable<\/span><span style=\"color: #BABED8\">(${PROJECT_NAME} ListContainerExample.cpp)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># Create a simple configuration header<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">configure_file<\/span><span style=\"color: #BABED8\">(config.h.in config.h)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"># Include the configuration header in the build<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">target_include_directories<\/span><span style=\"color: #BABED8\">(${PROJECT_NAME} PUBLIC <\/span><span style=\"color: #C3E88D\">&quot;${PROJECT_BINARY_DIR}&quot;<\/span><span style=\"color: #BABED8\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">ListContainerExample\nVersion 0.1\nlist before user input:  { 3.14159, 0.32, -0.6, -505.123, 987.01, }; \nEnter a floating point value or 999 to quit: 21.1\nEnter a floating point value or 999 to quit: 18.3\nEnter a floating point value or 999 to quit: 0.00004\nEnter a floating point value or 999 to quit: 0.00001\nEnter a floating point value or 999 to quit: 1.0006\nEnter a floating point value or 999 to quit: 33\nEnter a floating point value or 999 to quit: 254\nEnter a floating point value or 999 to quit: 88.7\nEnter a floating point value or 999 to quit: 999\nlist after user input:  { 88.7, 33, 1e-05, 18.3, 3.14159, 0.32, -0.6, -505.123, 987.01, 21.1, 4e-05, 1.0006, 254, }; \nlist after insert:  { 88.7, 33, 1e-05, 18.3, 3.14159, 0.32, -0.6, -0.6, -505.123, 987.01, 21.1, 4e-05, 1.0006, 254, }; \nlist after descending sort:  { -505.123, -0.6, -0.6, 1e-05, 4e-05, 0.32, 1.0006, 3.14159, 18.3, 21.1, 33, 88.7, 254, 987.01, }; \nlist after removing duplicates:  { -505.123, -0.6, 1e-05, 4e-05, 0.32, 1.0006, 3.14159, 18.3, 21.1, 33, 88.7, 254, 987.01, }; \nlist after ascending sort:  { -505.123, -0.6, 1e-05, 4e-05, 0.32, 1.0006, 3.14159, 18.3, 21.1, 33, 88.7, 254, 987.01, }; \nadding some more values\nafter adding numbers:  { -505.123, -0.6, 1e-05, 4e-05, 0.32, 1.0006, 3.14159, 18.3, 21.1, 33, 88.7, 254, 987.01, 1315.38, 4586.5, 2189.59, 6788.65, 9346.93, 5194.16, 345.721, 5297, 76.9819, 668.422, 6867.73, 9304.36, 5269.29, 6539.19, 7011.91, 7621.98, 474.645, 3282.34, 7564.1, 3653.39, }; \nafter removing negatives and sorting:  { 1e-05, 4e-05, 0.32, 1.0006, 3.14159, 18.3, 21.1, 33, 76.9819, 88.7, 254, 345.721, 474.645, 668.422, 987.01, 1315.38, 2189.59, 3282.34, 3653.39, 4586.5, 5194.16, 5269.29, 5297, 6539.19, 6788.65, 6867.73, 7011.91, 7564.1, 7621.98, 9304.36, 9346.93, }; \n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>Don&#8217;t be upset if you didn&#8217;t know half of those STL creations, I had to look some up too. STL has gotten too big to utilize effectively and gotten so old parts of it are rotting away. When you are writing<em><strong> production<\/strong><\/em> code that needs to run correctly for years, possibly decades <em>stay in the center lanes<\/em>. I have a system at a client site I wrote nearly 30 years ago, it still handles around $50 million in orders per day and despite massive changes to the business has not required modification in all that time. You IoT developers don&#8217;t manage to have functioning code in production a week.<\/p>\n\n\n\n<p>std::list does not have random access, you have to use find() to obtain an iterator.<\/p>\n\n\n\n<p><em><strong>Never use auto in production code outside of a template!<\/strong><\/em><\/p>\n\n\n\n<p>Being fat and lazy does not produce quality code even if your TDD says otherwise. The rules aren&#8217;t hard core for auto. With non native data types you are one include file away from having a different class derived from the same base class chosen as the &#8220;auto&#8221; type. This produces wild unpredictable code paths <em>in code that wasn&#8217;t changed<\/em>. Someone added the include to the include you are including and the happy path seemed to work.<\/p>\n\n\n\n<p>Notice the tooBig() function? Never ASS-U-ME you have enough room.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn&#8217;t until the IT industry was inundated with tiny x86 minds that people &#8220;tried to do it all in RAM.&#8221; Before the PC we had real computers with real operating systems. Other than Assembler, our languages were robust. Every platform supported indexed files and so did the compiler for every language. When we needed a multiply linked list &hellip; <a title=\"std::list &#8211; Example and Explanation\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/\"><span class=\"screen-reader-text\">std::list &#8211; Example and Explanation<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":6284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[438,1647,2169,1897,2167,2175],"class_list":["post-6303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-cobol","tag-dibol","tag-fortran-iv","tag-qsqltablemodel","tag-stdlist","tag-stdvector-c","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>std::list - Example and Explanation &#8211; Logikal Blog<\/title>\n<meta name=\"description\" content=\"Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn&#039;t until the IT industry was . . .\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"std::list - Example and Explanation &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn&#039;t until the IT industry was . . .\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-05T14:23:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-27T23:28:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1880\" \/>\n\t<meta property=\"og:image:height\" content=\"1253\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"std::list &#8211; Example and Explanation\",\"datePublished\":\"2023-11-05T14:23:45+00:00\",\"dateModified\":\"2023-11-27T23:28:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/\"},\"wordCount\":1124,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"keywords\":[\"COBOL\",\"DIBOL\",\"FORTRAN IV\",\"QSqlTableModel\",\"std::list\",\"std::vector c++\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/\",\"name\":\"std::list - Example and Explanation &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"datePublished\":\"2023-11-05T14:23:45+00:00\",\"dateModified\":\"2023-11-27T23:28:15+00:00\",\"description\":\"Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn't until the IT industry was . . .\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"width\":1880,\"height\":1253,\"caption\":\"Photo by DS stories on Pexels.com\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/uncategorized\\\/stdlist\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"std::list &#8211; Example and Explanation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"std::list - Example and Explanation &#8211; Logikal Blog","description":"Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn't until the IT industry was . . .","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/","og_locale":"en_US","og_type":"article","og_title":"std::list - Example and Explanation &#8211; Logikal Blog","og_description":"Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn't until the IT industry was . . .","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/","og_site_name":"Logikal Blog","article_published_time":"2023-11-05T14:23:45+00:00","article_modified_time":"2023-11-27T23:28:15+00:00","og_image":[{"width":1880,"height":1253,"url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","type":"image\/jpeg"}],"author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"std::list &#8211; Example and Explanation","datePublished":"2023-11-05T14:23:45+00:00","dateModified":"2023-11-27T23:28:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/"},"wordCount":1124,"commentCount":0,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","keywords":["COBOL","DIBOL","FORTRAN IV","QSqlTableModel","std::list","std::vector c++"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/","name":"std::list - Example and Explanation &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#primaryimage"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","datePublished":"2023-11-05T14:23:45+00:00","dateModified":"2023-11-27T23:28:15+00:00","description":"Our discussion of std::list, like our discussion of std::vector will start with a bit of history. It wasn't until the IT industry was . . .","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#primaryimage","url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","contentUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","width":1880,"height":1253,"caption":"Photo by DS stories on Pexels.com"},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/uncategorized\/stdlist\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"std::list &#8211; Example and Explanation"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/6303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=6303"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/6303\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media\/6284"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=6303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=6303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=6303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}