C++ Primer, Fifth Edition
to const may not be used to change the value of the object to which it points.
preprocessor Program that runs as part of compilation of a C++ program.
preprocessor variable Variable managed by the preprocessor. The preprocessor
replaces each preprocessor variable by its value before our program is compiled.
reference An alias for another object.
reference to const A reference that may not change the value of the object to
which it refers. A reference to const may be bound to a const object, a
nonconst object, or the result of an expression.
scope The portion of a program in which names have meaning. C++ has several
levels of scope:
global—names defined outside any other scope
class—names defined inside a class
namespace—names defined inside a namespace
block—names defined inside a block
Scopes nest. Once a name is declared, it is accessible until the end of the scope
in which it was declared.
separate compilation Ability to split a program into multiple separate source
files.
signed Integer type that holds negative or positive values, including zero.
string Library type representing variable-length sequences of characters.
struct Keyword used to define a class.
temporary Unnamed object created by the compiler while evaluating an
expression. A temporary exists until the end of the largest expression that
encloses the expression for which it was created.
top-level const The const that specifies that an object may not be changed.
type alias A name that is a synonym for another type. Defined through either a
typedef or an alias declaration.
type checking Term used to describe the process by which the compiler verifies
that the way objects of a given type are used is consistent with the definition of
that type.
type specifier The name of a type.
typedef Defines an alias for another type. When typedef appears in the base
type of a declaration, the names defined in the declaration are type names.
www.it-ebooks.info
Adding pdf to powerpoint slide - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
convert pdf pages into powerpoint slides; and paste pdf to powerpoint
Adding pdf to powerpoint slide - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
how to convert pdf slides to powerpoint; how to convert pdf to ppt
C++ Primer, Fifth Edition
undefined Usage for which the language does not specify a meaning. Knowingly
or unknowingly relying on undefined behavior is a great source of hard-to-track
runtime errors, security problems, and portability problems.
uninitialized Variable defined without an initial value. In general, trying to
access the value of an uninitialized variable results in undefined behavior.
unsigned Integer type that holds only values greater than or equal to zero.
variable A named object or reference. In C++, variables must be declared before
they are used.
void* Pointer type that can point to any nonconst type. Such pointers may not
be dereferenced.
void type Special-purpose type that has no operations and no value. It is not
possible to define a variable of type void.
word The natural unit of integer computation on a given machine. Usually a word
is large enough to hold an address. On a 32-bit machine a word is typically 4
bytes.
& operator Address-of operator. Yields the address of the object to which it is
applied.
* operator Dereference operator. Dereferencing a pointer returns the object to
which the pointer points. Assigning to the result of a dereference assigns a new
value to the underlying object.
# define Preprocessor directive that defines a preprocessor variable.
# endif Preprocessor directive that ends an #ifdef or #ifndef region.
# ifdef Preprocessor directive that determines whether a given variable is defined.
# ifndef Preprocessor directive that determines whether a given variable is not
defined.
Chapter 3. Strings, Vectors, and Arrays
Contents
Section 3.1 Namespace using Declarations
Section 3.2 Library string Type
Section 3.3 Library vector Type
www.it-ebooks.info
VB.NET PowerPoint: Add Image to PowerPoint Document Slide/Page
insert or delete any certain PowerPoint slide without affecting on C#.NET PPT image adding library. powerful & profession imaging controls, PDF document, tiff
how to change pdf to powerpoint format; convert pdf to powerpoint using
VB.NET PowerPoint: Edit PowerPoint Slide; Insert, Add or Delete
To view C# code for adding, inserting or To view more VB.NET PowerPoint slide processing functions powerful & profession imaging controls, PDF document, image
convert pdf pages to powerpoint slides; how to convert pdf to powerpoint on
C++ Primer, Fifth Edition
Section 3.4 Introducing Iterators
Section 3.5 Arrays
Section 3.6 Multidimensional Arrays
Chapter Summary
Defined Terms
In addition to the built-in types covered in Chapter 2, C++ defines a rich library of
abstract data types. Among the most important library types are string, which
supports variable-length character strings, and vector, which defines variable-size
collections. Associated with string and vector are companion types known as
iterators, which are used to access the characters in a string or the elements in a
vector.
The string and vector types defined by the library are abstractions of the more
primitive built-in array type. This chapter covers arrays and introduces the library
vector and string types.
The built-in types
that we covered in Chapter 2 are defined directly by the C++
language. These types represent facilities present in most computer hardware, such as
numbers or characters. The standard library defines a number of additional types of a
higher-level nature that computer hardware usually does not implement directly.
In this chapter, we’ll introduce two of the most important library types: string and
vector. A string is a variable-length sequence of characters. A vector holds a
variable-length sequence of objects of a given type. We’ll also cover the built-in array
type. Like other built-in types, arrays represent facilities of the hardware. As a result,
arrays are less convenient to use than the library string and vector types.
Before beginning our exploration of the library types, we’ll look at a mechanism for
simplifying access to the names defined in the library.
3.1. Namespace 
using
Declarations
Up to now, our programs have explicitly indicated that each library name we use is in
the std namespace. For example, to read from the standard input, we write
std::cin. These names use the scope operator (::) (§ 1.2, p. 8), which says that
the compiler should look in the scope of the left-hand operand for the name of the
right-hand operand. Thus, std::cin says that we want to use the name cin from
the namespace std.
Referring to library names with this notation can be cumbersome. Fortunately, there
are easier ways to use namespace members. The safest way is a using declaration.
§ 18.2.2 (p. 793) covers another way to use names from a namespace.
A using declaration lets us use a name from a namespace without qualifying the
www.it-ebooks.info
VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
PDF, TIFF, MS Word and Excel). Most of end users would like to install and use Microsoft PowerPoint software and create PPT slide annotation through adding a
online pdf converter to powerpoint; picture from pdf to powerpoint
C# PowerPoint - How to Process PowerPoint
Use the provided easy to call and write APIs programmed in C# class to develop user-defined PowerPoint slide adding and inserting projects.
converting pdf to powerpoint; how to convert pdf to powerpoint
C++ Primer, Fifth Edition
name with a namespace_name:: prefix. A using declaration has the form
using namespace::name;
Once the using declaration has been made, we can access 
name
directly:
Click here to view code image
#include <iostream>
// using declaration; when we use the name cin, we get the one from the namespace
std
using std::cin;
int main()
{
int i;
cin >> i;       // ok: cin is a synonym for std::cin
cout << i;      // error: no using declaration; we must use the full name
std::cout << i; // ok: explicitly use cout from namepsace std
return 0;
}
A Separate using Declaration Is Required for Each Name
Each using declaration introduces a single namespace member. This behavior lets us
be specific about which names we’re using. As an example, we’ll rewrite the program
from § 1.2 (p. 6) with using declarations for the library names it uses:
Click here to view code image
#include <iostream>
// using declarations for names from the standard library
using std::cin;
using std::cout; using std::endl;
int main()
{
cout << "Enter two numbers:" << endl;
int v1, v2;
cin >> v1 >> v2;
cout << "The sum of " << v1 << " and " << v2
<< " is " << v1 + v2 << endl;
return 0;
}
The using declarations for cin, cout, and endl mean that we can use those names
without the std:: prefix. Recall that C++ programs are free-form, so we can put
each using declaration on its own line or combine several onto a single line. The
important part is that there must be a using declaration for each name we use, and
each declaration must end in a semicolon.
Headers Should Not Include using Declarations
www.it-ebooks.info
VB.NET PowerPoint: VB Codes to Create Linear and 2D Barcodes on
PowerPoint PDF 417 barcode library is a mature and This PowerPoint ISSN barcode adding control is compatible ITF-14 barcode on any PowerPoint document slide
create powerpoint from pdf; conversion of pdf into ppt
VB.NET PowerPoint: Read, Edit and Process PPTX File
SDK into VB.NET class application by adding several compact well, like reading Excel in VB.NET, Reading PDF in VB Independent from Microsoft PowerPoint Product.
drag and drop pdf into powerpoint; pdf page to powerpoint
C++ Primer, Fifth Edition
Code inside headers (§ 2.6.3, p. 76) ordinarily should not use using declarations.
The reason is that the contents of a header are copied into the including program’s
text. If a header has a using declaration, then every program that includes that
header gets that same using declaration. As a result, a program that didn’t intend to
use the specified library name might encounter unexpected name conflicts.
A Note to the Reader
From this point on, our examples will assume that using declarations have been
made for the names we use from the standard library. Thus, we will refer to cin, not
std::cin, in the text and in code examples.
Moreover, to keep the code examples short, we won’t show the using declarations,
nor will we show the necessary #include directives. Table A.1 (p. 866) in Appendix
A lists the names and corresponding headers for standard library names we use in this
Primer.
Warning
Readers should be aware that they must add appropriate #include and
using declarations to our examples before compiling them.
Exercises Section 3.1
Exercise 3.1: Rewrite the exercises from § 1.4.1 (p. 13) and § 2.6.2 (p. 76)
with appropriate using declarations.
3.2. Library 
string
Type
string is a variable-length sequence of characters. To use the string type, we
must include the string header. Because it is part of the library, string is defined
in the std namespace. Our examples assume the following code:
#include <string>
using std::string;
This section describes the most common string operations; § 9.5 (p. 360) will cover
additional operations.
Note
www.it-ebooks.info
C# PowerPoint: C# Guide to Add, Insert and Delete PPT Slide(s)
offer this C#.NET PowerPoint slide adding, inserting and guide for each PowerPoint slide processing operation & profession imaging controls, PDF document, tiff
add pdf to powerpoint slide; convert pdf document to powerpoint
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
easily VB.NET PPT image adding and inserting clip art or screenshot to PowerPoint document slide at powerful & profession imaging controls, PDF document, image
convert pdf to powerpoint slide; converting pdf to powerpoint slides
C++ Primer, Fifth Edition
In addition to specifying the operations that the library types provide, the
standard also imposes efficiency requirements on implementors. As a result,
library types are efficient enough for general use.
3.2.1. Defining and Initializing strings
Each class defines how objects of its type can be initialized. A class may define many
different ways to initialize objects of its type. Each way must be distinguished from
the others either by the number of initializers that we supply, or by the types of those
initializers. Table 3.1 lists the most common ways to initialize strings. Some
examples:
Click here to view code image
string s1;            // default initialization; s1 is the empty string
string s2 = s1;       // s2 is a copy of  s1
string s3 = "hiya";   // s3 is a copy of the string literal
string s4(10, 'c');   // s4 is cccccccccc
Table 3.1. Ways to Initialize a string
We can default initialize a string (§ 2.2.1, p. 44), which creates an empty string;
that is, a string with no characters. When we supply a string literal (§ 2.1.3, p. 39),
the characters from that literal—up to but not including the null character at the end
of the literal—are copied into the newly created string. When we supply a count
and a character, the string contains that many copies of the given character.
Direct and Copy Forms of Initialization
In § 2.2.1 (p. 43) we saw that C++ has several different forms of initialization. Using
strings, we can start to understand how these forms differ from one another. When
we initialize a variable using =, we are asking the compiler to copy initialize the
object by copying the initializer on the right-hand side into the object being created.
Otherwise, when we omit the =, we use direct initialization.
www.it-ebooks.info
VB.NET PowerPoint: Extract & Collect PPT Slide(s) Using VB Sample
functions, like VB.NET PPT slide adding/removing, PPT read this VB.NET PowerPoint slide processing tutorial & profession imaging controls, PDF document, image
change pdf to powerpoint online; convert pdf to powerpoint slides
VB.NET PowerPoint: PPTX to SVG Conversion; Render PPT to Vector
into VB.NET project by adding project reference PowerPoint files that end with .pptx file suffix can powerful & profession imaging controls, PDF document, tiff
how to change pdf file to powerpoint; export pdf into powerpoint
C++ Primer, Fifth Edition
When we have a single initializer, we can use either the direct or copy form of
initialization. When we initialize a variable from more than one value, such as in the
initialization of s4 above, we must use the direct form of initialization:
Click here to view code image
string s5 = "hiya";  // copy initialization
string s6("hiya");   // direct initialization
string s7(10, 'c');  // direct initialization; s7 is cccccccccc
When we want to use several values, we can indirectly use the copy form of
initialization by explicitly creating a (temporary) object to copy:
Click here to view code image
string s8 = string(10, 'c'); // copy initialization; s8 is cccccccccc
The initializer of s8—string(10, 'c')—creates a string of the given size and
character value and then copies that value into s8. It is as if we had written
Click here to view code image
string temp(10, 'c'); // temp is cccccccccc
string s8 = temp;     // copy temp into s8
Although the code used to initialize s8 is legal, it is less readable and offers no
compensating advantage over the way we initialized s7.
3.2.2. Operations on strings
Along with defining how objects are created and initialized, a class also defines the
operations that objects of the class type can perform. A class can define operations
that are called by name, such as the isbn function of our Sales_item class (§
1.5.2, p. 23). A class also can define what various operator symbols, such as << or +,
mean when applied to objects of the class’ type. Table 3.2 (overleaf) lists the most
common string operations.
Table 3.2. string Operations
www.it-ebooks.info
C++ Primer, Fifth Edition
Reading and Writing 
string
s
As we saw in Chapter 1, we use the iostream library to read and write values of
built-in types such as int, double, and so on. We use the same IO operators to
read and write strings:
Click here to view code image
// Note: #include and using declarations must be added to compile this code
int main()
{
string s;          // empty string
cin >> s;          // read a whitespace-separated string into s
cout << s << endl; // write s to the output
return 0;
}
This program begins by defining an empty string named s. The next line reads the
standard input, storing what is read in s. The string input operator reads and
discards any leading whitespace (e.g., spaces, newlines, tabs). It then reads
characters until the next whitespace character is encountered.
So, if the input to this program is Hello World! (note leading and trailing spaces),
then the output will be Hello with no extra spaces.
Like the input and output operations on the built-in types, the string operators
return their left-hand operand as their result. Thus, we can chain together multiple
reads or writes:
Click here to view code image
string s1, s2;
cin >> s1 >> s2; // read first input into s1, second into s2
cout << s1 << s2 << endl; // write both strings
www.it-ebooks.info
C++ Primer, Fifth Edition
If we give this version of the program the same input, Hello World!, our output would
be “HelloWorld!
Reading an Unknown Number of 
string
s
In § 1.4.3 (p. 14) we wrote a program that read an unknown number of int values.
We can write a similar program that reads strings instead:
Click here to view code image
int main()
{
string word;
while (cin >> word)       // read until end-of-file
cout << word << endl; // write each word followed by a new line
return 0;
}
In this program, we read into a string, not an int. Otherwise, the while condition
executes similarly to the one in our previous program. The condition tests the stream
after the read completes. If the stream is valid—it hasn’t hit end-of-file or encountered
an invalid input—then the body of the while is executed. The body prints the value
we read on the standard output. Once we hit end-of-file (or invalid input), we fall out
of the while.
Using 
getline
to Read an Entire Line
Sometimes we do not want to ignore the whitespace in our input. In such cases, we
can use the getline function instead of the >> operator. The getline function takes
an input stream and a string. This function reads the given stream up to and
including the first newline and stores what it read—
not including
the newline—in its
string argument. After getline sees a newline, even if it is the first character in
the input, it stops reading and returns. If the first character in the input is a newline,
then the resulting string is the empty string.
Like the input operator, getline returns its istream argument. As a result, we
can use getline as a condition just as we can use the input operator as a condition
(§ 1.4.3, p. 14). For example, we can rewrite the previous program that wrote one
word per line to write a line at a time instead:
Click here to view code image
int main()
{
string line;
// read input a line at a time until end-of-file
while (getline(cin, line))
cout << line << endl;
www.it-ebooks.info
C++ Primer, Fifth Edition
return 0;
}
Because line does not contain a newline, we must write our own. As usual, we use
endl to end the current line and flush the buffer.
Note
The newline that causes getline to return is discarded; the newline is 
not
stored in the string.
The 
string empty
and 
size
Operations
The empty function does what one would expect: It returns a bool (§ 2.1, p. 32)
indicating whether the string is empty. Like the isbn member of Sales_item (§
1.5.2, p. 23), empty is a member function of string. To call this function, we use
the dot operator to specify the object on which we want to run the empty function.
We can revise the previous program to only print lines that are not empty:
Click here to view code image
// read input a line at a time and discard blank lines
while (getline(cin, line))
if (!line.empty())
cout << line << endl;
The condition uses the logical 
NOT
operator (the ! operator). This operator returns
the inverse of the bool value of its operand. In this case, the condition is true if
str is not empty.
The size member returns the length of a string (i.e., the number of characters in
it). We can use size to print only lines longer than 80 characters:
Click here to view code image
string line;
// read input a line at a time and print lines that are longer than 80 characters
while (getline(cin, line))
if (line.size() > 80)
cout << line << endl;
The 
string::size_type
Type
It might be logical to expect that size returns an int or, thinking back to § 2.1.1 (p.
34), an unsigned. Instead, size returns a string::size_type value. This type
requires a bit of explanation.
www.it-ebooks.info
Documents you may be interested
Documents you may be interested