Vectors. CIS 15 : Spring 2007
|
|
- Theresa Marsh
- 6 years ago
- Views:
Transcription
1 Vectors CIS 15 : Spring 2007
2 Functionalia Midterm 2 : Ave. 58% (36.9 / 68) Med. 67% (45.5 / 68) Today: Standard Template Library Vector Template
3 Standard Template Library C++ offers extended functionality than just the runtime library through the Standard Template Library. Basically, rather than re-invent the wheel on commonly written code (i.e. Linked Lists), the STL provides standard functionality through templates.
4 Templates Templates - imagine you can create Classes and Functions where the data type is abstracted and is generic. int addint(int a, int b) { return a + b; } double adddouble(double a, double b) { return a + b; }
5 Templates Templates - imagine you can create Classes and Functions where the data type is abstracted and is generic. int addint(int a, int b) { } return a + b; Same Algorithm double adddouble(double a, double b) { } return a + b;
6 What s in the STL? STL Data Structures
7 What s in the STL? STL Data Structures containers iterators
8 What s in the STL? STL Data Structures containers iterators sequence associative
9 What s in the STL? STL Data Structures containers iterators sequence associative vector deque list
10 What s in the STL? STL Data Structures containers iterators sequence associative vector deque list set multiset map multimap
11 What s in the STL? STL Data Structures containers iterators sequence vector deque list associative set multiset map multimap Forward Bidirectional Random-access Input Output
12 What s in the STL? STL Data Structures containers iterators sequence vector deque list associative set multiset map multimap Forward Bidirectional Random-access Input Output
13 Vectors Vectors are expandable arrays (dynamic in size). Values may be added to or removed from the end or middle of a vector. Like arrays: store values, and elements stored in contiguous memory locations can use the array [] notation to access members
14 Vectors Vectors are expandable arrays (dynamic in size). Values may be added to or removed from the end or middle of a vector. Like arrays: store values, and elements stored in contiguous memory locations can use the array [] notation to access members (and for backwards compatibility s sake).
15 Vectors Vectors are expandable arrays (dynamic in size). Values may be added to or removed from the end or middle of a vector. Unlike arrays: do not have to commit to a set size when declaring manages the size for you, increases it s size for you can report the size of it for you similar in functionality to the string class
16 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
17 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
18 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); vector is a template Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
19 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); declared to use the type int Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
20 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); numbers is the name of the vector Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
21 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
22 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
23 Defining a vector Use the vector STL library. #include <vector> Declares a vector object that can store integers. It is initially empty (size of 0) vector<int> numbers; Declares a vector that contains 10 integers. vector<int> numbers(10); Declares a vector that contains 10 integers all initialized to the value of 2. vector<int> numbers(10, 2); Copy one vector into another. vector<int> copy(numbers);
24 Using vectors vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) { numbers[i] = i; } Sets a list of numbers in ascending order.
25 Using vectors vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) { } numbers[i] = i; No need for array constant sizes, use the size() member function.
26 Using vectors vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) { numbers[i] = i; } Use the same array notation [].
27 Adding an element vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; numbers.push_back(11); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
28 Adding an element vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; numbers.push_back(11); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
29 Adding an element vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; numbers.push_back(11); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
30 Adding an element vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; Adds the element to the END of the vector numbers.push_back(11); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
31 Adding an element vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; numbers.push_back(11); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
32 Removing an element from the list vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; numbers.pop_back(); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
33 Removing an element from the list vector<int> numbers(10); for(int i = 0; i < numbers.size(); i++) numbers[i] = i+1; for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl; numbers.pop_back(); for(int i = 0; i < numbers.size(); i++) cout << numbers[i] << endl;
34 More Vector Member Functions vector<int> numbers(10); at(index) capacity() numbers.at(2); numbers.capacity(); Returns the value of the element at location index Returns the maximum number of elements in the vector currently clear() numbers.clear(); Clears the vector of all of its elements empty() reverse() resize(index, values) numbers.empty(); numbers.reverse(); numbers.resize(5,1); Returns true if the vector is empty, false otherwise Reverses the order of the elements in the vector Reinitializes the vector with index number of elements to value values swap(vector2) vector(int) numbers2(10); numbers.swap(numbers2); Swaps the members of the vector with that of vector2
35 More Vector Member Functions vector<int> numbers(10); at(index) capacity() numbers.at(2); numbers.capacity(); Returns the value of the element at location index Returns the maximum number of elements in the vector currently clear() numbers.clear(); Clears the vector of all of its elements empty() reverse() resize(index, values) numbers.empty(); numbers.reverse(); numbers.resize(5,1); Returns true if the vector is empty, false otherwise Reverses the order of the elements in the vector Reinitializes the vector with index number of elements to value values swap(vector2) vector(int) numbers2(10); numbers.swap(numbers2); Swaps the members of the vector with that of vector2
36 reverse error? error: 'class std::vector<int, std::allocator<int> >' has no member named 'reverse' No problem. The vector template has a reverse function available for you for use in this manner: vector<int> numbers; // using an int vector reverse(numbers.begin(), numbers.end());
37 reverse error? error: 'class std::vector<int, std::allocator<int> >' has no member named 'reverse' No problem. The vector template has a reverse function available for you for use in this manner: vector<int> numbers; // using an int vector reverse(numbers.begin(), numbers.end()); These member functions return iterators (used to access objects store in containers, an object-oriented index)
38 Using Vectors with Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } }; How would you create a vector of Dogs?
39 Using Vectors with Objects class Dog { string name; fido: woof! fido: woof! public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog> pack(10); Calls the Default Constructor. Then makes 9 more copies. pack[0].bark(); pack[1].bark();
40 Using Vectors with Dynamic Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog *> pack(10); Which constructor is called?
41 Using Vectors with Dynamic Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog *> pack(10); None of them. 10 Dog Pointers!
42 Using Vectors with Dynamic Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog *> pack; Not necessary to declare the vector size.
43 Using Vectors with Dynamic Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog *> pack; Add a Dog to the pack.
44 Using Vectors with Dynamic Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog *> pack; Default Constructor pack.push_back(new Dog); pack.push_back(new Dog( yo-yo ));
45 Using Vectors with Dynamic Objects class Dog { string name; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; } };... vector<dog *> pack; pack.push_back(new Dog); Other Constructor pack.push_back(new Dog( yo-yo ));
46 Write a loop to make all of the Dogs Bark! class Dog { string name; }; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; }... vector<dog *> pack; pack.push_back(new Dog); pack.push_back(new Dog( yo-yo ));
47 Use the size() member function. class Dog { string name; }; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; }... vector<dog *> pack; pack.push_back(new Dog); pack.push_back(new Dog( yo-yo )); for(int i = 0; i < pack.size(); i++) { } pack[i]->bark();
48 Clean up memory? class Dog { string name; }; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; }... vector<dog *> pack; pack.push_back(new Dog); pack.push_back(new Dog( yo-yo )); for(int i = 0; i < pack.size(); i++) { } pack[i]->bark();
49 Need to use delete on the Dog Pointers. class Dog { string name; }; public: Dog() { name = "fido"; } Dog(string n) { name = n; } void bark() { cout << name << ": woof!" << endl; }... vector<dog *> pack; pack.push_back(new Dog); pack.push_back(new Dog( yo-yo )); for(int i = 0; i < pack.size(); i++) { delete pack[i]; pack[i] = NULL; }
50 More Vector Member Functions Section 7.12 Section 16.5 Have more information about the vector template.
CPSC 427a: Object-Oriented Programming
CPSC 427a: Object-Oriented Programming Michael J. Fischer Lecture 17 November 1, 2011 CPSC 427a, Lecture 17 1/21 CPSC 427a, Lecture 17 2/21 CPSC 427a, Lecture 17 3/21 A bit of history C++ standardization.
More informationTHE STANDARD TEMPLATE LIBRARY (STL) Week 6 BITE 1513 Computer Game Programming
THE STANDARD TEMPLATE LIBRARY (STL) Week 6 BITE 1513 Computer Game Programming What the heck is STL???? Another hard to understand and lazy to implement stuff? Standard Template Library The standard template
More informationUnit 1: Preliminaries Part 4: Introduction to the Standard Template Library
Unit 1: Preliminaries Part 4: Introduction to the Standard Template Library Engineering 4892: Data Structures Faculty of Engineering & Applied Science Memorial University of Newfoundland May 6, 2010 ENGI
More informationDynamic Data Structures
Dynamic Data Structures We have seen that the STL containers vector, deque, list, set and map can grow and shrink dynamically. We now examine how some of these containers can be implemented in C++. To
More informationCOEN244: Class & function templates
COEN244: Class & function templates Aishy Amer Electrical & Computer Engineering Templates Function Templates Class Templates Outline Templates and inheritance Introduction to C++ Standard Template Library
More informationCS 162, Lecture 25: Exam II Review. 30 May 2018
CS 162, Lecture 25: Exam II Review 30 May 2018 True or False Pointers to a base class may be assigned the address of a derived class object. In C++ polymorphism is very difficult to achieve unless you
More informationSTL: C++ Standard Library
STL: C++ Standard Library Encapsulates complex data structures and algorithms CSC 330 OO Software Design 1 We ve emphasized the importance of software reuse. Recognizing that many data structures and algorithms
More informationThe Standard Template Library. An introduction
1 The Standard Template Library An introduction 2 Standard Template Library (STL) Objective: Reuse common code Common constructs: Generic containers and algorithms STL Part of the C++ Standard Library
More information1. The term STL stands for?
1. The term STL stands for? a) Simple Template Library b) Static Template Library c) Single Type Based Library d) Standard Template Library Answer : d 2. Which of the following statements regarding the
More informationCS197c: Programming in C++
CS197c: Programming in C++ Lecture 2 Marc Cartright http://ciir.cs.umass.edu/~irmarc/cs197c/index.html Administration HW1 will be up this afternoon Written assignment Due in class next week See website
More informationThe Standard Template Library Classes
The Standard Template Library Classes Lecture 33 Sections 9.7, 9.8 Robb T. Koether Hampden-Sydney College Wed, Apr 23, 2014 Robb T. Koether (Hampden-Sydney College) The Standard Template Library Classes
More informationCSE 100: C++ TEMPLATES AND ITERATORS
1 CSE 100: C++ TEMPLATES AND ITERATORS 2 Announcements Look out for the extra weekend section More on git and C++ (iterators) Live demo by your friendly tutors Not mandatory but it will be fun Bring your
More informationSTL components. STL: C++ Standard Library Standard Template Library (STL) Main Ideas. Components. Encapsulates complex data structures and algorithms
STL: C++ Standard Library Standard Template Library (STL) Encapsulates complex data structures and algorithms is a library of generic container classes which are both efficient and functional C++ STL developed
More informationChapter 5. The Standard Template Library.
Object-oriented programming B, Lecture 11e. 1 Chapter 5. The Standard Template Library. 5.1. Overview of main STL components. The Standard Template Library (STL) has been developed by Alexander Stepanov,
More information! An exception is a condition that occurs at execution time and makes normal continuation of the program impossible.
Exceptions! Exceptions are used to signal error or unexpected events that occur while a program is running.! An exception is a condition that occurs at execution time and makes normal continuation of the
More informationCSE 100: C++ TEMPLATES AND ITERATORS
CSE 100: C++ TEMPLATES AND ITERATORS Announcements Gradesource and clickers: We ll be making one more pass for unregistered clickers tonight, but after that you ll be on your own How is Assignment 1 going?
More informationUnit 4 Basic Collections
Unit 4 Basic Collections General Concepts Templates Exceptions Iterators Collection (or Container) Classes Vectors (or Arrays) Sets Lists Maps or Tables C++ Standard Template Library (STL Overview A program
More informationFunction Templates. Consider the following function:
Function Templates Consider the following function: void swap (int& a, int& b) { int tmp = a; a = b; b = tmp; Swapping integers. This function let's you swap the contents of two integer variables. But
More informationStandard Template Library
Standard Template Library The standard template library (STL) contains CONTAINERS ALGORITHMS ITERATORS A container is a way that stored data is organized in memory, for example an array of elements. Algorithms
More information19.1 The Standard Template Library
Chapter 19: The Template Library From a review of Effective STL : 50 Specific Ways to Improve Your Use of the Standard Template Library by ScottMeyers: It s hard to overestimate the importance of the Standard
More informationReview Questions for Final Exam
CS 102 / ECE 206 Spring 11 Review Questions for Final Exam The following review questions are similar to the kinds of questions you will be expected to answer on the Final Exam, which will cover LCR, chs.
More informationComputational Physics
Computational Physics numerical methods with C++ (and UNIX) 2018-19 Fernando Barao Instituto Superior Tecnico, Dep. Fisica email: fernando.barao@tecnico.ulisboa.pt Computational Physics 2018-19 (Phys Dep
More informationCourse "Data Processing" Name: Master-1: Nuclear Energy Session /2018 Examen - Part A Page 1
Examen - Part A Page 1 1. mydir directory contains three files: filea.txt fileb.txt filec.txt. How many files will be in the directory after performing the following operations: $ ls filea.txt fileb.txt
More informationPurpose of Review. Review some basic C++ Familiarize us with Weiss s style Introduce specific constructs useful for implementing data structures
C++ Review 1 Purpose of Review Review some basic C++ Familiarize us with Weiss s style Introduce specific constructs useful for implementing data structures 2 Class The Class defines the data structure
More informationExam 3 Chapters 7 & 9
Exam 3 Chapters 7 & 9 CSC 2100-002/003 29 Mar 2017 Read through the entire test first BEFORE starting Put your name at the TOP of every page The test has 4 sections worth a total of 100 points o True/False
More informationCSE 100: C++ TEMPLATES AND ITERATORS
CSE 100: C++ TEMPLATES AND ITERATORS Announcements iclickers: Please register at ted.ucsd.edu. Start ASAP!! For PA1 (Due next week). 10/6 grading and 10/8 regrading How is Assignment 1 going? A. I haven
More informationTemplate based set of collection classes STL collection types (container types)
STL Collection Types Template based set of collection classes STL collection types (container types) Sequences vector - collection of elements of type T list - doubly linked list, only sequential access
More informationStructured Data. CIS 15 : Spring 2007
Structured Data CIS 15 : Spring 2007 Functionalia HW4 Part A due this SUNDAY April 1st: 11:59pm Reminder: I do NOT accept LATE HOMEWORK. Today: Dynamic Memory Allocation Allocating Arrays Returning Pointers
More informationTemplates and Vectors
Templates and Vectors 1 Generic Programming function templates class templates 2 the STL vector class a vector of strings enumerating elements with an iterator inserting and erasing 3 Writing our own vector
More information7 TEMPLATES AND STL. 7.1 Function Templates
7 templates and STL:: Function Templates 7 TEMPLATES AND STL 7.1 Function Templates Support generic programming functions have parameterized types (can have other parameters as well) functions are instantiated
More informationCMSC 341 Lecture 6 STL, Stacks, & Queues. Based on slides by Lupoli, Dixon & Gibson at UMBC
CMSC 341 Lecture 6 STL, Stacks, & Queues Based on slides by Lupoli, Dixon & Gibson at UMBC Templates 2 Common Uses for Templates Some common algorithms that easily lend themselves to templates: Swap what
More informationSSE2034: System Software Experiment 3
SSE2034: System Software Experiment 3 Spring 2016 Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu STL Collection Types Template based set of collection
More informationExceptions, Templates, and the STL
Exceptions, Templates, and the STL CSE100 Principles of Programming with C++, Fall 2018 (based off Chapter 16 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/
More informationContainers in C++ and Java
Containers in C++ and Java 1 1. Which of the following statements is true? a) Equality on the basis of reference implies equality on the basis of content. b) Equality on the basis of content implies equality
More informationCSCI-1200 Data Structures Fall 2013 Lecture 9 Iterators & Lists
Review from Lecture 8 CSCI-1200 Data Structures Fall 2013 Lecture 9 Iterators & Lists Explored a program to maintain a class enrollment list and an associated waiting list. Unfortunately, erasing items
More informationToday. andyoucanalsoconsultchapters6amd7inthetextbook. cis15-fall2007-parsons-lectvii.1 2
TEMPLATES Today This lecture looks at techniques for generic programming: Generic pointers Templates The standard template library Thebestreferenceis: http://www.cppreference.com/index.html andyoucanalsoconsultchapters6amd7inthetextbook.
More informationTEMPLATES AND ITERATORS
TEMPLATES AND ITERATORS Problem Solving with Computers-I https://ucsb-cs24-sp17.github.io/ 2 Announcements Checkpoint deadline for pa04 (aka lab05) is due today at 11:59pm Be sure to push your code to
More informationCS 103 Unit 12 Slides
1 CS 103 Unit 12 Slides Standard Template Library Vectors & Deques Mark Redekopp 2 Templates We ve built a list to store integers But what if we want a list of double s or char s or other objects We would
More informationCS11 Advanced C++ Fall Lecture 1
CS11 Advanced C++ Fall 2006-2007 Lecture 1 Welcome! ~8 lectures Slides are posted on CS11 website http://www.cs.caltech.edu/courses/cs11 ~6 lab assignments More involved labs 2-3 week project at end CS
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationLecture 21 Standard Template Library. A simple, but very limited, view of STL is the generality that using template functions provides.
Lecture 21 Standard Template Library STL: At a C++ standards meeting in 1994, the committee voted to adopt a proposal by Alex Stepanov of Hewlett-Packard Laboratories to include, as part of the standard
More informationC++ Lab 04 - File I/O, Arrays and Vectors
C++ Lab 04 - File I/O, Arrays and Vectors 2.680 Unmanned Marine Vehicle Autonomy, Sensing and Communications Spring 2018 Michael Benjamin, mikerb@mit.edu Department of Mechanical Engineering Computer Science
More informationSTL 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
More informationLecture-5. STL Containers & Iterators
Lecture-5 STL Containers & Iterators Containers as a form of Aggregation Fixed aggregation An object is composed of a fixed set of component objects Variable aggregation An object is composed of a variable
More informationCOMP322 - Introduction to C++
COMP322 - Introduction to C++ Lecture 05 - I/O using the standard library, stl containers, stl algorithms Dan Pomerantz School of Computer Science 5 February 2013 Basic I/O in C++ Recall that in C, we
More informationCSCI-1200 Data Structures Fall 2017 Lecture 9 Iterators & STL Lists
Review from Lecture 8 CSCI-1200 Data Structures Fall 2017 Lecture 9 Iterators & STL Lists Designing our own container classes Dynamically allocated memory in classes Copy constructors, assignment operators,
More informationCSCI-1200 Data Structures Spring 2018 Lecture 10 Vector Iterators & Linked Lists
CSCI-1200 Data Structures Spring 2018 Lecture 10 Vector Iterators & Linked Lists Review from Lecture 9 Explored a program to maintain a class enrollment list and an associated waiting list. Unfortunately,
More informationEE 355 Unit 11b. Doubly-Linked Lists and Deques. Mark Redekopp
1 EE 355 Unit 11b Doubly-Linked Lists and Deques Mark Redekopp 2 Singly-Linked List Review Used structures/classes and pointers to make linked data structures Singly-Linked Lists dynamically allocates
More information(8 1) Container Classes & Class Templates D & D Chapter 18. Instructor - Andrew S. O Fallon CptS 122 (October 8, 2018) Washington State University
(8 1) Container Classes & Class Templates D & D Chapter 18 Instructor - Andrew S. O Fallon CptS 122 (October 8, 2018) Washington State University Key Concepts Class and block scope Access and utility functions
More informationMidterm Review. PIC 10B Spring 2018
Midterm Review PIC 10B Spring 2018 Q1 What is size t and when should it be used? A1 size t is an unsigned integer type used for indexing containers and holding the size of a container. It is guarenteed
More informationCS 103 Unit 15. Doubly-Linked Lists and Deques. Mark Redekopp
1 CS 103 Unit 15 Doubly-Linked Lists and Deques Mark Redekopp 2 Singly-Linked List Review Used structures/classes and pointers to make linked data structures Singly-Linked Lists dynamically allocates each
More informationThis is a CLOSED-BOOK-CLOSED-NOTES exam consisting of five (5) questions. Write your answer in the answer booklet provided. 1. OO concepts (5 points)
COMP152H Object Oriented Programming and Data Structures Spring Semester 2011 Midterm Exam March 22, 2011, 9:00-10:20am in Room 3598 Instructor: Chi Keung Tang This is a CLOSED-BOOK-CLOSED-NOTES exam consisting
More informationCSCE 206: Structured Programming in C++
CSCE 206: Structured Programming in C++ 2017 Spring Exam 3 Monday, April 17, 2017 Total - 100 Points B Instructions: Total of 11 pages, including this cover and the last page. Before starting the exam,
More informationCSCE 206: Structured Programming in C++
CSCE 206: Structured Programming in C++ 2017 Spring Exam 3 Monday, April 17, 2017 Total - 100 Points A Instructions: Total of 11 pages, including this cover and the last page. Before starting the exam,
More informationComS 228 Exam 1. September 27, 2004
ComS 228 Exam 1 September 27, 2004 Name: University ID: Section: (10 percent penalty if incorrect) This is a one-hour, closed-book, closed-notes, closed-calculator exam. The exam consists of 9 pages (including
More information! Determine if a number is odd or even. ! Determine if a number/character is in a range. - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises CS 2308 Spring 2014 Jill Seaman Chapters 1-7 + 11 Write C++ code to: Determine if a number is odd or even Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More information2
STL Design CSC 330 2 3 4 5 Discussions Associative Containers 6 7 Basic Associative Containers 8 set class 9 map class 10 Example multiset (1) 11 Example multiset (2) 12 Example multiset (3) 13 Example
More informationLectures 19, 20, 21. two valid iterators in [first, last) such that i precedes j, then *j is not less than *i.
Lectures 19, 20, 21 1. STL library examples of applications Explanations: The member function pop_back removes the last element of the controlled sequence. The member function pop_front removes the first
More informationby Pearson Education, Inc. All Rights Reserved. 2
An important part of every container is the type of iterator it supports. This determines which algorithms can be applied to the container. A vector supports random-access iterators i.e., all iterator
More informationCSCE 2014 Final Exam Spring Version A
CSCE 2014 Final Exam Spring 2017 Version A Student Name: Student UAID: Instructions: This is a two-hour exam. Students are allowed one 8.5 by 11 page of study notes. Calculators, cell phones and computers
More informationLecture 12. Monday, February 7 CS 215 Fundamentals of Programming II - Lecture 12 1
Lecture 12 Log into Linux. Copy files on csserver in /home/hwang/cs215/lecture12/*.* Reminder: Practical Exam 1 is Wednesday 3pm-5pm in KC-267. Questions about Project 2 or Homework 6? Submission system
More informationWhen we program, we have to deal with errors. Our most basic aim is correctness, but we must
Chapter 5 Errors When we program, we have to deal with errors. Our most basic aim is correctness, but we must deal with incomplete problem specifications, incomplete programs, and our own errors. When
More informationCS2255 HOMEWORK #1 Fall 2012
CS55 HOMEWORK #1 Fall 01 1.What is assigned to the variable a given the statement below with the following assumptions: x = 10, y = 7, and z, a, and b are all int variables. a = x >= y; a. 10 b. 7 c. The
More informationQueue Implementations
Queue Implementations 1 Circular Queues buffer of fixed capacity improvements and cost estimates 2 Deques the double ended queue queue as double linked circular list MCS 360 Lecture 17 Introduction to
More informationEE 355 Unit 10. C++ STL - Vectors and Deques. Mark Redekopp
1 EE 355 Unit 10 C++ STL - Vectors and Deques Mark Redekopp 2 Templates We ve built a list to store integers But what if we want a list of double s or char s or other objects We would have to define the
More informationcalling a function - function-name(argument list); y = square ( z ); include parentheses even if parameter list is empty!
Chapter 6 - Functions return type void or a valid data type ( int, double, char, etc) name parameter list void or a list of parameters separated by commas body return keyword required if function returns
More informationSets and MultiSets. Contents. Steven J. Zeil. July 19, Overview of Sets and Maps 4
Steven J. Zeil July 19, 2013 Contents 1 Overview of Sets and Maps 4 1 2 The Set ADT 6 2.1 The template header................................. 14 2.2 Internal type names.................................
More informationCMSC 341 Lecture 7 Lists
CMSC 341 Lecture 7 Lists Today s Topics Linked Lists vs Arrays Nodes Using Linked Lists Supporting Actors (member variables) Overview Creation Traversal Deletion UMBC CMSC 341 Lists 2 Linked Lists vs Arrays
More informationStandard Template Library. Containers, Iterators, Algorithms. Sequence Containers. Containers
Standard Template Library The standard template library (STL) contains Containers Algorithms Iterators A container is a way that stored data is organized in memory, for example an array of elements. Algorithms
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Spring 2007 7p-9p, Thursday, March 1 Name: NetID: Lab Section
More informationCMSC 341 Lecture 6 Templates, Stacks & Queues. Based on slides by Shawn Lupoli & Katherine Gibson at UMBC
CMSC 341 Lecture 6 Templates, Stacks & Queues Based on slides by Shawn Lupoli & Katherine Gibson at UMBC Today s Topics Data types in C++ Overloading functions Templates How to implement them Possible
More informationArrays. Week 4. Assylbek Jumagaliyev
Arrays Week 4 Assylbek Jumagaliyev a.jumagaliyev@iitu.kz Introduction Arrays Structures of related data items Static entity (same size throughout program) A few types Pointer-based arrays (C-like) Arrays
More informationPointers and Strings Chapters 10, Pointers and Arrays (10.3) 3.2 Pointers and Arrays (10.3) An array of ints can be declared as
Pointers and Strings Chapters 10, 12 2/5/07 CS250 Introduction to Computer Science II 1 3.1 Pointers and Arrays (10.3) An array of ints can be declared as o int numbers[] = 1, 2, 3, 4, 5; numbers is also
More informationLinked List Practice Questions
Linked List Practice Questions 1. The following function reverse() is supposed to reverse a singly linked list. There is one line missing at the end of the function. /* head_ref is a double pointer which
More information7.1. Chapter 7: Arrays Hold Multiple Values. Array - Memory Layout. Array Terminology. Array Terminology 8/23/2014. Arrays Hold Multiple Values
Chapter 7: Arrays 7.1 Arrays Hold Multiple Values Arrays Hold Multiple Values Array: variable that can store multiple values of the same type Values are stored in adjacent memory locations Declared using
More informationCS 61B, Spring 1996 Midterm #1 Professor M. Clancy
CS 61B, Spring 1996 Midterm #1 Professor M. Clancy Problem 0 (1 point, 1 minute) Put your login name on each page. Also make sure you have provided the information requested on the first page. Problem
More informationLectures 11,12. Online documentation & links
Lectures 11,12 1. Quicksort algorithm 2. Mergesort algorithm 3. Big O notation 4. Estimating computational efficiency of binary search, quicksort and mergesort algorithms 5. Basic Data Structures: Arrays
More informationArray Elements as Function Parameters
Arrays Class 26 Array Elements as Function Parameters we have seen that array elements are simple variables they can be used anywhere a normal variable can unsigned values [] {10, 15, 20}; unsigned quotient;
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Linked Lists 2 Introduction Linked List Abstract Data Type SinglyLinkedList ArrayList Keep in Mind Introduction:
More informationCSE100. Advanced Data Structures. Lecture 4. (Based on Paul Kube course materials)
CSE100 Advanced Data Structures Lecture 4 (Based on Paul Kube course materials) Lecture 4 Binary search trees Toward a binary search tree implementation using C++ templates Reading: Weiss Ch 4, sections
More informationCS 61B Discussion Quiz 1. Questions
Name: SID: CS 61B Discussion Quiz 1 Write your name and SID above. Detach this page from your discussion handout, and turn it in when your TA instructs you to do so. These quizzes are used as attendance.
More information! Determine if a number is odd or even. ! Determine if a number/character is in a range. ! Assign a category based on ranges (wind speed)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to:! Determine if a number is odd or even CS 2308 Spring 2013 Jill Seaman! Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationG52CPP C++ Programming Lecture 15
G52CPP C++ Programming Lecture 15 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 IMPORTANT No optional demo lecture at 2pm this week Please instead use the time to do your coursework I
More informationSuppose that you want to use two libraries with a bunch of useful classes and functions, but some names collide:
COMP151 Namespaces Motivation [comp151] 1 Suppose that you want to use two libraries with a bunch of useful classes and functions, but some names collide: // File: gnutils.h class Stack {... ; class Some
More informationSORTING AND SEARCHING
SORTING AND SEARCHING Today Last time we considered a simple approach to sorting a list of objects. This lecture will look at another approach to sorting. We will also consider how one searches through
More informationG52CPP C++ Programming Lecture 18
G52CPP C++ Programming Lecture 18 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Welcome Back 2 Last lecture Operator Overloading Strings and streams 3 Operator overloading - what to know
More informationCS32 - Week 4. Umut Oztok. Jul 15, Umut Oztok CS32 - Week 4
CS32 - Week 4 Umut Oztok Jul 15, 2016 Inheritance Process of deriving a new class using another class as a base. Base/Parent/Super Class Derived/Child/Sub Class Inheritance class Animal{ Animal(); ~Animal();
More informationCS11 Advanced C++ Spring 2018 Lecture 2
CS11 Advanced C++ Spring 2018 Lecture 2 Lab 2: Completing the Vector Last week, got the basic functionality of our Vector template working It is still missing some critical functionality Iterators are
More informationReview for Test 1 (Chapter 1-5)
Review for Test 1 (Chapter 1-5) 1. Software development 1. Pre-conditions and Post-conditions 2. Running time analysis Big O Timing loops and nested loops 1) Write the simplest big-o expression to describe
More informationl Determine if a number is odd or even l Determine if a number/character is in a range - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to: l Determine if a number is odd or even CS 2308 Fall 2016 Jill Seaman l Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationSTL Quick Reference for CS 241
STL Quick Reference for CS 241 Spring 2018 The purpose of this document is to provide basic information on those elements of the C++14 standard library we think are most likely to be needed in CS 241.
More informationC++: Overview and Features
C++: Overview and Features Richard Newman r.newman@rdg.ac.uk Room CS127 2003-12-11 Programming & Design, 2003 1 Introduction You have: used streams seen how classes are used seen some C++ code Today: good
More informationStandard Template Library
Standard Template Library Wednesday, October 10, 2007 10:09 AM 9.3 "Quick Peek" STL history 1990s Alex Stepanov & Meng Lee of HP Labs 1994 ANSI/IS0 standard Components Container class templates Iterators
More informationCS102 Sorting - Part 2
CS102 Sorting - Part 2 Prof Tejada 1 Types of Sorts Incremental Approach Bubble Sort, Selection Sort, Insertion Sort, etc. Work slowly toward solution one step at a time Generally iterative in nature Divide
More information1. Write step by step code to delete element from existing Doubly Linked List. Suppose that all declarations are done
1. Write step by step code to delete element from existing Doubly Linked List. Suppose that all declarations are done. first NULL 42 A A 13 A A 6 NULL Write code here first NULL 42 A A 13 A A 6 NULL p
More information! Determine if a number is odd or even. ! Determine if a number/character is in a range. - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to:! Determine if a number is odd or even CS 2308 Fall 2018 Jill Seaman! Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationG52CPP C++ Programming Lecture 18. Dr Jason Atkin
G52CPP C++ Programming Lecture 18 Dr Jason Atkin 1 Last lecture Operator Overloading Strings and streams 2 Operator overloading - what to know Know that you can change the meaning of operators Know that
More informationArrays - Vectors. Arrays: ordered sequence of values of the same type. Structures: named components of various types
Arrays - Vectors Data Types Data Type: I. set of values II. set of operations over those values Example: Integer I. whole numbers, -32768 to 32767 II. +, -, *, /, %, ==,!=, , =,... Which operation
More informationStandard Library. Lecture 27. Containers. STL Containers. Standard Library
Standard Library Lecture 27 Containers (templates) Streams (I/O facilities) Standard Library Portable, type-safe, efficient Try to use as much as possible Heavy use of templates Streams: #include
More informationProblem Set 1. You might want to read Chapter 12 of the course reader before attempting this problem.
CS106L Fall 2009 Handout #04 November 5, 2009 Problem Set 1 Due November 12, 2009, 11:59PM In this problem set, you'll get a chance to play around with the concepts we've covered over the past few lectures.
More information