View the Index

Total Page:16

File Type:pdf, Size:1020Kb

View the Index INDEX Symbols and Numbers <boost/graph/ adjacency_list.hpp>, 455 ::testin g:: , 328 adjacency_matrix.hpp>, 455 =0 (pure virtual methods), 138 edge_list.hpp>, 455 2001: A Space Odyssey, li, 353 <boost/heap/*.hpp>, 453 The 300, 685 <boost/intrusive/*.hpp> 42six, 500 associative containers, 453 <algorithm>, 576–628 sequential containers, 434 <any> , 378–379 <boost/lexical_cast.hpp>, 500 <array> , 408 <boost/logic/tribool.hpp>, 370 <atomic> , 653 <boost/math/constants/constants.hpp>, 394 std::system /bin/sh (and ), 697 <boost/multi_array.hpp>, 434 <bitset> , 432–433 <boost/multi_index_container.hpp>, 453 <boost/algorithm/ <boost/numeric/conversion/converter searching/boyer_moore.hpp> , 713 .hpp>, 401 string/case_conv.hpp> , 515 <boost/optional.hpp>, 372 string/classification.hpp> , 512, 513 <boost/pair.hpp>, 374 string/find.hpp> , 519 <boost/program_options.hpp>, 700 string/finder.hpp> , 514 <boost/property_tree/ string/join.hpp> , 517 json_parser.hpp>, 456 string/predicate.hpp> , 511 ptree.hpp>, 456 string/replace.hpp> , 515 <boost/ptr_container/*.hpp> string/split.hpp>, 517 associative containers, 453 string/trim.hpp>, 515 sequential containers, 434 <boost/any.hpp> , 378 <boost/smart_ptr/ <boost/array.hpp> , 408 intrusive_ptr.hpp>, 363 <boost/asio.hpp> , 664 shared_array.hpp>, 356 <boost/bimap.hpp> , 453 shared_ptr.hpp>, 356 <boost/chrono.hpp> , 387 <boost/test/included/unit_test.hpp>, 318 <boost/circular_buffer.hpp> , 434 <boost/timer/timer.hpp>, 390 <boost/container/ <boost/tuple/tuple.hpp>, 376 deque.hpp> , 424 <boost/unordered_map.hpp>, 453 flat_map.hpp> , 453 <boost/unordered_set.hpp> flat_set.hpp>, 453 multiset, 446 list.hpp>, 425 set, 442 set.hpp> , 435 <boost/variant.hpp>, 379 slist.hpp> , 434 [[carries_dependency]], 224 small_vector.hpp> , 434 <chrono>, stable_vector.hpp>, 434 Chrono library, 387 static_vector.hpp>, 434 literals, 197 <boost/date_time/ <cmath>, 393 posix_time/posix_time.hpp> , 386 <complex>, 393 time_zone_base.hpp> , 386 <condition_variable>, 656 __cplusplus, xlv <new> <csignal>, 699 allocators, 365 <cstdarg>, 250 overloading new, 189 <cstddef> [[nodiscard]], 224 size_t, 41 [[noreturn]], 224, 244 std::by te, 40 <numeric>, 629, 636 <cstdint>, 32 <optional>, 372 <cstdio> <ostream>, 524 Hello, world!, 4 #pragma once, 710 printf pedagogy, 19 <queue>, 429–430 <cstdlib> <random>, 396–398 environment variables, 698 <ratio>, 403 program termination, 693 <regex>, 503 <cstring>, 109 <set> <cwchar>, 46 multiset, 441 [[deprecated]], 224 set, 435 <deque>, 424 <shared_mutex>, 649 #else, 709 <stack>, 427 <errno.h>, 353 <stdexcept> <execution>, 575 runtime error, 98 [[fallthrough]], 224 standard exception classes, 101 <filesystem>, 552 <system_error>, 102 <fstream>, 542 <thread> <functional>, 269 low-level concurrency, 658 <future>, 640 waiting, 389 #ifndef, 709 <tuple>, 376 #include <type_traits> double inclusion, 710 example using, 227 explanation of, 5 explanation of, 164 <initializer_list>, 457 <unordered_set> <iomanip>, 554 unordered multiset, 446 <iostream>, 524 unordered set, 442 <istream>, 524 <utility>, 374 <iterator> <variant>, 379 auxiliary functions, 472 <vector>, 415 insert iterators, 464 iterator adapters, 476 A reverse iterator adapters, 477 std::size, 45 A, 328 <limits>, 188 abs, 392, 394 <list>, 425 absolute path, 552 <locale>, 521 absolute value, 28 <map> acceptance test, 282 maps, 446 access controls, 56 multimaps, 452 access violation, 76 [[maybe_unused]], 224 acos, 392, 394 <memory> acosh, 393 memory operations, 636 action, 324 shared pointer, 356 addition +, 183 unique pointer, 349 addition assignment, 184 <mutex>, 649 address-of & operator, 185 716 Index address space layout randomization asin, 392, 394 (ASLR), 69 asinh, 393 adjacent difference (operation), 633 Asimov, Isaac, 273–274 Advanced Package Tool (APT), 10 ASLR (address space layout After (HippoMocks), 333 randomization), 69 Alexandrescu, Andrei, 178 ASSERT_ algorithm, xlviii, 407, 573 ANY_THROW, 312 complexity, 574 DOUBLE_EQ, 312 allocation EQ, 312 object lifecycle, 90 FALSE, 312 dynamic storage, 95 FLOAT_EQ, 312 smart pointers, 341 GE, 312 AlphaHistogram, 275 GT, 312 ALT-J, 526 HRESULT_FAILED, 312 American Standard Code for HRESULT_SUCCEEDED, 312 Information Interchange. LE, 312 See ASCII LT, 312 An, 328 NE, 312 Anathem (Stephenson), 84 NO_THROW, 312 AND operator STRCASEEQ, 312 Boolean &, 182 STRCASENE, 312 logical &&, 182 STREQ, 312 The Answer to the Ultimate Question STRNE, 312 of Life, the Universe, and THROW, 312 Everything, 251 TRUE, 312 AnyNumber, 328 assertions Apple, 8, 32. See macOS with Boost Test, 319 Approx, 307 with Catch, 305 APT (Advanced Package Tool), 10 description of, 288 Aqua Teen Hunger Force, 514 with Google Test, 312 arg (std::complex), 394 assert_that, 288 argc and argv assigned numbers (IANA), 667 Boost ProgramOptions, 704 assignment operator, 184 main, 272 associative arguments (to a function), 16 arrays, 446 arithmetic operators, 182 containers, 434 array asterisk (the many uses of), 70 decay to a pointer, 72–74 asynchronous description, 42–43 operations, 664 dynamic, 96 procedure call, 651 initialization of, 61 task, 640 new/delete expressions, 96 atan, 392, 394 reference, 175 atanh, 393 size of, 45 atomic, 653 std::array, 408 AtLeast, 328 The Art of Assembly Language, 2nd Edition AtMost, 328 (Hyde), xxxix attribute, 223 ASCII (American Standard Code for Aumasson, Jean-Philippe, 396 Information Interchange) Austin Powers: International Man of table, 47 Mystery, 515 example histogram, 274 string comparisons, 488 Index 717 auto, xlii array, 408 code refactoring, 85 asio, 663–689 initialization, 84 bimap, 453 modifiers, 85 char_separator, 520 type deduction, 84–86 circular_buffer, 434 automatic object, 90 compressed_pair, 374 automatic storage duration, 90 container, 415–453 autonomous vehicle, 283 converter, 401 auto type deduction, 248 edge_list, 455 auxiliary iterator function, 472 get, 376 Averageable (concept), 168 gregorian, 383, 384, 385 Avogadro’s number, 36 heap, 453 intrusive, 434, 453 B intrusive_ptr, 363 lexical_cast, 500 Bachmann-Landau notation, 574 logic, 370 Back to the Future, 641 math, 394 badbit, 530 multi_array, 434 bad_file_descriptor (std:errc), 102 multi_index_container, 453 Bank, 134 num_edges, 455 Batman: The Dark Knight, 534 num_vertices, 455 Battlestar Galactica, 110 numeric, 402 begin (iterators), 467 numeric_cast, 403 benzodiazepine receptor agonist, optional, 372 202–203 program_options, 701–704 Between, 328 property_tree, 456 bgp, 667 ptr_list, 434 bidirectional range, 511 ptr_map, 453 The Big Lebowski, 534 ptr_set, 453 Big O notation, 574 ptr_unordered_map, 453 binary arithmetic operators, 183 ptr_unordered_set, 453 binary integers, 33 ptr_vector, 434 binary mode (file), 542 scoped_array, 348 binary search, 617 scoped_ptr, 342 Bindels, Peter, xxv, 332 shared_array, 356 bitset, 432 system, 664 bitwise logical operators, 182 timer, 390 Bladerunner, 121 tokenizer, 520 blocks, 212 tuple, 376 block scope, 212 unordered_map, 453 Book of Revelation, 153 unordered_multimap, 453 Boolean/integer conversion, 38 unordered_multiset, 446 Boolean literal, 38 unordered_set, 442 bool, 38 variant, 379 b o ost:: weak_ptr, 361 add_edge, 455 Boost add_vertex, 455 Beast, 689 adjacency_list, 455 Libraries, 317 adjacency_matrix, 455 Container, 433 adjacent_vertices, 455 DateTime, 383 algorithm, 510–520, 637 Graph Library, 455 any, 378, 705 IOStream, 549 718 Index Math, 392 CarDetected, 283 ProgramOptions, 700 case, 50, 229 Python, 712 casting, 201 String Algorithms, 510 Catch, 304, 344 Test, 317–322 CATCH_CONFIG_MAIN, 304, 344 Tokenizer, 520 cbegin (iterators), 467 BOOST_ cbrt, 392 AUTO_TEST_CASE, 317–322 ceil, 393 FIXTURE_TEST_CASE, 317–322 cend (iterators), 467 TEST, 317–322 char, 36 TEST_MODULE, 317–322 character literals, 37 Boston Corbett, 245 CharCategory, 613 Boyer-Moore, 713 Charles VII, 598 braced initialization, 59, 83, 417 CHECK, 304, 344 braces, 15 CHECK_NOTHROW, 304, 344 BrakeCommand, 283 CHECK_THROWS_AS, 304, 344 break CheckedInteger, 187 keyword, 50 Clang, 9 statement, 238 class Bucket (class), 190 constructor, 58 buckets fully featured, 54 for memory allocation, 190 hierarchy, 138 for unordered sets, 442 initialization, 59 buffer, 671 initializing PODs, 60 buffering, 532 invariant, li, 58 buffer overflow, 74–75 as keyword, 56 BugblatterBeast, 379 methods, 55 built-in types, 31 plain-old-data, 52 byte pointer, 76 as template parameter, 150 bytes, 40 vs. struct, 57 client, 666 C Clock of the Long Now, 55 closed range, 413 C, xxv, xxxvii, 34 cmd.exe, 697 C++ 20, 163 C++Now, 29 The C++ Programming Language, code instrumentation, 282 4th Edition (Stroustrup), code reuse, 149 xxxii, 137, 159, 198, 415 Color, 205 The C++ Standard Library, 2nd Edition command line parameters, 272 (Josuttis), 164, 415, 444, 535 comments, 21 C++ Templates: The Complete Guide comparator object, 430, 435 (Vandevoorde et al.), 178 comparison operators, 15, 185, 611 CADRe, liii, 108 compiler, 4 Caesar cipher, 418 definition of, 5 calculator program, 528 tool chain, 5 callable type, 255 Compiler Explorer, 6 callback, 664 compiler-generated methods, 129 call stack, 105 compiler optimization, 710 exception unwinding, 111 compile-time canonical path, 552 control structures, 178 capture list (lambda), 262 recursion, 252 carbon_thaw, 152 complement ~, 182 Index 719 completion condition (Boost Asio), 675 C-style complexity, 574 APIs, 74 complex number, 393 cast, 202 compound statements, 15, 212 strings, 45 concepts, 163 cumulative sum, 537 concrete class/type, 150 cursor (stream), 548 concurrency, 640 hint, 664 D conditional
Recommended publications
  • Standard Template Library
    STANDARD TEMPLATE LIBRARY Developed By Mrs. K.M.Sanghavi STANDARD TEMPLATE LIBRARY (STL) Developed by Alexander Stepanov and Meng Lee of HP in 1979. Standard template library accepted in July 1994 into C++ ANSI Standard These are called as collection of General-purpose template classes( data structures) and functions 1 COMPONENTS OF STL Containers Algorithms Iterators 2 COMPONENTS OF STL Algorithms use iterators to interact with objects stored in containers Container Algorithm1 Algorithm 2 Object1 Object2 Iterator 1 Iterator 2 Object3 Iterator 3 Algorithm 3 3 CONTAINER Objects that hold Example : Array data (of same type) Implemented by Template Classes 4 ALGORITHM Example : These are procedures used to process the data Searching, Sorting, contained in containers. Merging, Copying, Initializing Implemented by template functions 5 ITERATOR It is an object that Used to move points to an through the element in a contents of container container They can be Connect Algorithms incremented and with Containers decremented 6 COMPONENTS OF STL Containers 7 CATEGORIES OF CONTAINERS Sequence Containers Derived Associative Containers Containers 8 CONTAINERS STL Defines 10 Containers 9 CATEGORIES OF CONTAINERS Sequence Associative Derived • vector • set • stack • deque • multiset • queue • list • map • Priority_queue • multimap 10 SEQUENCE CONTAINERS Stores elements in a linear sequence Each element is related to other elements by its position along the line They allow insertion of elements Example Element Element Element Last …….. 0 1 2 element 11 THREE TYPES OF SEQUENCE CONTAINERS vector deque list 12 Vector : Sequence Container Expandable and dynamic array Grows and shrinks in size Insertion / Deletion of elements at back Permits direct access to any element 13 Vector : Sequence Container Container Header File Iterator vector <vector> Random Access 14 vector Sequence Container Declarations ◦ vector <type> v; type: int, float, etc.
    [Show full text]
  • Introduction to Groovy and Grails
    Introduction to Groovy and Grails Mohamed Seifeddine November 25, 2009 1 Contents 1 Foreword 5 2 Introduction to Groovy 7 3 Getting started 9 3.1 Installing Groovy . .9 3.1.1 JDK - A Prerequisite . .9 3.1.2 Installing Groovy . .9 3.2 Updating Groovy . 10 3.3 Editors for Groovy and Grails . 10 3.4 groovysh, groovyConsole & groovy . 10 4 Boolean Evaluation, Elvis Operator & the Safe Navigation Op- erator 13 4.1 Elvis Operator . 15 4.2 Safe Navigation Operator . 15 5 String & GString 19 6 Classes, Dynamic type, Methods, Closures the & Meta-Object Protocol 21 6.1 Dynamic type . 25 6.2 Closure . 29 6.2.1 Create . 29 6.2.2 Call . 30 6.2.3 Getting Information . 33 6.2.4 Method Reference Pointer . 33 6.3 More on Methods . 35 6.3.1 Optional Parantheses . 35 6.3.2 Positional Parameters . 35 6.3.3 Optional Parameters . 36 6.3.4 Mapped Parameters . 37 6.3.5 Dynamic Method Call . 37 6.4 Meta-Object Protocol . 39 6.4.1 Adding Methods & Properties . 39 6.4.2 Add Constructor . 41 6.4.3 Intercepting Method Calls . 41 6.4.4 Getting Information . 42 7 Collections (List, Range, Map) and Iterative Object Methods 47 7.1 List . 47 7.2 Range . 50 7.3 Map . 52 8 Other 55 8.1 Groovy Switch . 55 8.2 Groovy SQL . 56 8.3 File . 58 8.4 Exception Handling . 60 2 8.5 Other . 60 9 Introduction to Grails 61 10 Getting Started 63 10.1 Installing Grails .
    [Show full text]
  • SEI CERT C++ Coding Standard (2016 Edition)
    SEI CERT C++ Coding Standard Rules for Developing Safe, Reliable, and Secure Systems in C++ 2016 Edition Aaron Ballman Copyright 2017 Carnegie Mellon University This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the au- thor(s) and do not necessarily reflect the views of the United States Department of Defense. References herein to any specific commercial product, process, or service by trade name, trade mark, manu- facturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by Carnegie Mellon University or its Software Engineering Institute. This report was prepared for the SEI Administrative Agent AFLCMC/PZM 20 Schilling Circle, Bldg 1305, 3rd floor Hanscom AFB, MA 01731-2125 NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. [Distribution Statement A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution.
    [Show full text]
  • Rogue Wave Standard C++ Library User's Guide and Reference
    Rogue Wave Standard C++ Library User's Guide and Reference Rogue Wave Software Corvallis, Oregon USA Standard C++ Library User's Guide and Reference for Rogue Wave's implementation of the Standard C++ Library. Based on ANSI's Working Paper for Draft Proposed International Standard for Information Systems--Programming Language C++. April 28, 1995. User's Guide Authors: Timothy A. Budd, Randy Smithey Reference Authors: Wendi Minne, Tom Pearson, and Randy Smithey Product Team: Development: Anna Dahan, Donald Fowler, Marlene Hart, Angelika Langer, Philippe Le Mouel, Randy Smithey Quality Engineering: KevinDjang, Randall Robinson, Chun Zhang Manuals: Wendi Minne, Kristi Moore, Julie Prince,Randy Smithey Support: North Krimsley Significant contributions by: Rodney Mishima Copyright © 1995-96 Rogue Wave Software, Inc. All rights reserved. Printed in the United States of America. Part # RW81-01-2-032596 Printing Date: July 1996 Rogue Wave Software, Inc., 850 SW 35th Street, Corvallis, Oregon, 97333 USA Product Information: (541) 754-5010 (800) 487-3217 Technical Support: (541) 754-2311 FAX: (541) 757-6650 World Wide Web: http://www.roguewave.com Please have your product serial number available when calling for technical support. Table of Contents 1. Introduction .........................................................................1 1.1 What is the Standard C++ Library?............................................................. 2 1.2 Does the Standard C++ Library Differ From Other Libraries? ............... 2 1.3 What are the Effects of
    [Show full text]
  • The Wrapper API's Baseline Requirements
    LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990097-11 - E 08/29/2000 The wrapper API’s baseline requirements James Kent Blackburn, Masha Barnes Jolien Creighton Distribution of this document: LIGO LDAS Group This is an internal working document of the LIGO Project. California Institute of Technology Massachusetts Institute of Technology LIGO Project - MS 51-33 LIGO Project - MS 20B-145 Pasadena CA 91125 Cambridge, MA 01239 Phone (818) 395-2129 Phone (617) 253-4824 Fax (818) 304-9834 Fax (617) 253-7014 E-mail: [email protected] E-mail: [email protected] WWW: http://www.ligo.caltech.edu/ Table of Contents Index file \\SIRIUS\kent\documents\LDAS\wrapperAPI\wrapperAPIReqCover.fm - printed August 29, 2000 The wrapper API’s baseline requirements James Kent Blackburn California Institute of Technology LIGO Data Analysis Group August 29, 2000 I. Introduction A. General Description: 1. The wrapperAPI is responsible for executing the advanced analysis pro- cesses which are based on MPI and executing in the LDAS distributed com- puting parallel cluster of nodes using an interpreted command language. 2. The wrapperAPI will be written entirely in C and C++. No TCL/TK will be used in this LDAS API. 3. The wrapperAPI will be initiated using the mpirun command. This command will be started solely by the mpiAPI. The mpiAPI will determine the appro- priate values for the mpirun command, as well as the appropriate commands for the wrapperAPI and pass these as command line arguments to mpirun. The wrapperAPI will interpret its own command line arguments which are automatically passed to the wrapperAPI by the mpirun command.
    [Show full text]
  • Perception and Effects of Implementing Kotlin in Existing Projects
    Bachelor thesis Undergraduate level Perception and effects of implementing Kotlin in existing projects A case study about language adoption Author: Emil Sundin Supervisor: Wei Song Examiner: Azadeh Sarkheyli Discipline: Informatics Course: IK2017 Credit: 15 credits Examination date: 2018-05-25 Dalarna University provides the opportunity for publishing the thesis through DiVA as Open Access. This means that the thesis work will become freely available to read and download through their portal. Dalarna University encourages students as well as researchers to publish their work in the Open Access format. We approve the publishing of this thesis work under the Open Access format: Yes ☒ No ☐ Dalarna University – SE-791 88 Falun – Phone +4623-77 80 00 Abstract The Kotlin programming language has seen an increase of adoption since its launch in 2011. In late 2017 Google announced first-class support for Kotlin on the Android platform which further popularized the language. With this increase in popularity we felt it was interesting to investigate how Kotlin affects the developer experience. We performed a case study to see how Java developers perceive the Kotlin language, and how it meets the requirements of these developers. To gather the developer requirements and their perception of Kotlin we performed two sets of interviews and rewrote parts of their codebase. The first set of interviews identified developer requirements and the second set of interviews showcased the Kotlin language and its potential use in their codebase. The results show that Kotlin can meet most of the developer requirements and that the perception of Kotlin is positive. Kotlin’s ability to be incrementally adopted was a prominent feature which reduced the inherent risks of technology adoption while providing them the ability to further evaluate the language.
    [Show full text]
  • STL) Is a Collection of Containers and Algorithms Which Is Part of the Standard C++ Library
    Containers, algorithms and more... The standard library is the collection of functions and types that is supplied with every standard-compliant C++ compiler What should be in the standard library? And equally important: what should not be? 2 Introduction to Systems Programming The standard library should: Provide basic functionality which the user can have difficulty implementing himself: Memory management Input / output Implementation-dependent information Save and simplify work: Supply useful non-primitive facilities 3 Introduction to Systems Programming The standard library cannot contain problem- specific code For example – a Student class It should contain generic classes and functions which are usable in a variety of problems: Containers – such as list, set, etc. Algorithms – such as sorting, searching Popular classes – such as string 4 Introduction to Systems Programming What are the requirements from the standard library's containers and algorithms? Simple to use Interfaces should be uniform and convenient Complete Reasonable features should be included Efficient Library code might take a large part of the execution time Extensible The user should be able to add new containers and algorithms that work with the given ones 5 Introduction to Systems Programming The containers included in the standard library should be generic We have seen several ways to implement generic containers: Using void* and pointers to functions Using templates Using subtyping and polymorphism 6 Introduction to Systems Programming
    [Show full text]
  • STL – Standard Template Library
    STL – Standard Template Library September 22, 2016 CMPE 250 STL – Standard Template Library September 22, 2016 1 / 25 STL – Standard Template Library Collections of useful classes for common data structures Ability to store objects of any type (template) Containers form the basis for treatment of data structures Container – class that stores a collection of data STL consists of 10 container classes: CMPE 250 STL – Standard Template Library September 22, 2016 2 / 25 STL Containers Sequence Container Stores data by position in linear order: First element, second element , etc. All containers Use same names for common operations Have specific operations Associate Container Stores elements by key, such as name, ID number or part number Access an element by its key which may bear no relationship to the location of the element in the container Adapter Container Contains another container as its underlying storage structure CMPE 250 STL – Standard Template Library September 22, 2016 3 / 25 STL Containers Sequence Container Vector Deque List Adapter Containers Stack Queue Priority queue Associative Container Set, multiset Map, multimap CMPE 250 STL – Standard Template Library September 22, 2016 4 / 25 How to access Components - Iterator Iterator is an object that can access a collection of like objects one object at a time. An iterator can traverse the collection of objects. Each container class in STL has a corresponding iterator that functions appropriately for the container For example: an iterator in a vector class allows random access An iterator
    [Show full text]
  • FORSCHUNGSZENTRUM JÜLICH Gmbh Programming in C++ Part II
    FORSCHUNGSZENTRUM JÜLICH GmbH Jülich Supercomputing Centre D-52425 Jülich, Tel. (02461) 61-6402 Ausbildung von Mathematisch-Technischen Software-Entwicklern Programming in C++ Part II Bernd Mohr FZJ-JSC-BHB-0155 1. Auflage (letzte Änderung: 19.09.2003) Copyright-Notiz °c Copyright 2008 by Forschungszentrum Jülich GmbH, Jülich Supercomputing Centre (JSC). Alle Rechte vorbehalten. Kein Teil dieses Werkes darf in irgendeiner Form ohne schriftliche Genehmigung des JSC reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Publikationen des JSC stehen in druckbaren Formaten (PDF auf dem WWW-Server des Forschungszentrums unter der URL: <http://www.fz-juelich.de/jsc/files/docs/> zur Ver- fügung. Eine Übersicht über alle Publikationen des JSC erhalten Sie unter der URL: <http://www.fz-juelich.de/jsc/docs> . Beratung Tel: +49 2461 61 -nnnn Auskunft, Nutzer-Management (Dispatch) Das Dispatch befindet sich am Haupteingang des JSC, Gebäude 16.4, und ist telefonisch erreich- bar von Montag bis Donnerstag 8.00 - 17.00 Uhr Freitag 8.00 - 16.00 Uhr Tel.5642oder6400, Fax2810, E-Mail: [email protected] Supercomputer-Beratung Tel. 2828, E-Mail: [email protected] Netzwerk-Beratung, IT-Sicherheit Tel. 6440, E-Mail: [email protected] Rufbereitschaft Außerhalb der Arbeitszeiten (montags bis donnerstags: 17.00 - 24.00 Uhr, freitags: 16.00 - 24.00 Uhr, samstags: 8.00 - 17.00 Uhr) können Sie dringende Probleme der Rufbereitschaft melden: Rufbereitschaft Rechnerbetrieb: Tel. 6400 Rufbereitschaft Netzwerke: Tel. 6440 An Sonn- und Feiertagen gibt es keine Rufbereitschaft. Fachberater Tel. +49 2461 61 -nnnn Fachgebiet Berater Telefon E-Mail Auskunft, Nutzer-Management, E.
    [Show full text]
  • Effective STL
    Effective STL Author: Scott Meyers E-version is made by: Strangecat@epubcn Thanks is given to j1foo@epubcn, who has helped to revise this e-book. Content Containers........................................................................................1 Item 1. Choose your containers with care........................................................... 1 Item 2. Beware the illusion of container-independent code................................ 4 Item 3. Make copying cheap and correct for objects in containers..................... 9 Item 4. Call empty instead of checking size() against zero. ............................. 11 Item 5. Prefer range member functions to their single-element counterparts... 12 Item 6. Be alert for C++'s most vexing parse................................................... 20 Item 7. When using containers of newed pointers, remember to delete the pointers before the container is destroyed. ........................................................... 22 Item 8. Never create containers of auto_ptrs. ................................................... 27 Item 9. Choose carefully among erasing options.............................................. 29 Item 10. Be aware of allocator conventions and restrictions. ......................... 34 Item 11. Understand the legitimate uses of custom allocators........................ 40 Item 12. Have realistic expectations about the thread safety of STL containers. 43 vector and string............................................................................48 Item 13. Prefer vector
    [Show full text]
  • Groovy and Java: a Comparison Groovy’S Resemblance to Java Is Often Quite Striking
    APPENDIX ■ ■ ■ The Groovy Language Groovy is an all-purpose programming language for the JVM. It was born in 2003 when James Strachan and Bob McWhirter founded the Groovy project with the goal of creating a glue lan- guage to easily combine existing frameworks and components. Groovy is a language that aims to bring the expressiveness of languages such as Ruby, Lisp, and Python to the Java platform while still remaining Java friendly. It attracted much excitement with these ambitious goals, because the majority of other scripting languages on the Java platform either used an entirely alien syntax and APIs or were simply Java without the need to specify types. Despite its youth, Groovy is a stable, feature-rich language that forms the perfect base for Grails. This is a fantastic achievement, given the limited resources available to an open source project such as Groovy. Groovy was an obvious choice as a platform for the Grails framework, because it provides the necessary underlying infrastructure to create the diverse range of miniature domain-specific languages utilized throughout Grails. ■Note Martin Fowler has written an excellent article about domain-specific languages: http://www.mar- tinfowler.com/bliki/DomainSpecificLanguage.html. What does this mean? Well, the syntax you see used throughout the book has often been magically enhanced and shortened by using a combination of Groovy’s already concise syntax and its support for metaprogramming. Groovy performs a lot of magic under the covers, abstracted away from the developer. This removes the burden from the programmer who would otherwise be required to write reams of unnecessary, repetitive code.
    [Show full text]
  • Seqan Manual Release 1.4.2
    SeqAn Manual Release 1.4.2 The SeqAn Team October 13, 2014 Contents 1 Table Of Contents 3 2 API Documentation 5 2.1 Tutorial..................................................5 437paragraph*.389 437paragraph*.390 437paragraph*.391 437paragraph*.392 437paragraph*.393 437paragraph*.394 438paragraph*.395 438paragraph*.396 438paragraph*.397 438paragraph*.398 438paragraph*.399 438paragraph*.400 439paragraph*.401 439paragraph*.402 439paragraph*.403 439paragraph*.404 440paragraph*.405 440paragraph*.406 2.2 How Tos................................................. 440 2.3 Infrastructure............................................... 536 2.4 Build Manual............................................... 542 2.5 SeqAn Style Guides........................................... 560 2.6 Glossary................................................. 597 2.7 References................................................ 598 Bibliography 601 i ii SeqAn Manual, Release 1.4.2 This is the manual of the SeqAn library. SeqAn is the C++ template library for the analysis of biological sequences. It contains algorithms and data structures for • string representation and their manipluation, • online and indexed string search, • efficient I/O of bioinformatics file formats, • sequence alignment, and • much more. Contents 1 SeqAn Manual, Release 1.4.2 2 Contents CHAPTER 1 Table Of Contents Tutorial Each tutorial takes 30 to 60 minutes of your time for learning how to use SeqAn. Jump right into using SeqAn using our tutorials! • Detailed installation descriptions are available in the Getting Started Tutorial. How Tos Use these short and target-oriented articles to solve common, specific problems. Build Manual These articles describe how to use the SeqAn build system and integrate into your Makefiles, for example. Infrastructure These pages describe the SeqAn infrastructure and are mostly interesting to SeqAn developers. SeqAn Style Guides Please follow these style guides for SeqAn library and application code.
    [Show full text]