Module ⧍ ¡ vector: āϝ⧠container-āĻāĻž āϏāĻŦāĻžāϰ āĻāĻā§ āĻšāĻžāϤ⧠āĻāϏā§
vector: āϝ⧠āĻŦāĻžāĻā§āϏāĻā§āϞ⧠āύāĻŋāĻā§ āύāĻŋāĻā§ āĻŦāĻžāĻĄāĻŧā§
āĻāĻ lesson-āĻ āϝāĻž āĻļāĻŋāĻāĻŦā§
- āĻāĻāĻāĻž vector declare āĻāϰā§
push_backāĻĻāĻŋāϝāĻŧā§ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§, āϤāĻžāϰāĻĒāϰ index āĻĻāĻŋāϝāĻŧā§ āĻŦāĻž range-for āĻĻāĻŋāϝāĻŧā§ āĻāĻŦāĻžāϰ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤ - Size āĻāϰ capacity āĻā§, āĻŦā§āĻāĻŋāϝāĻŧā§ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻāϰ
push_backāĻāĻžāϝāĻŧāĻāĻž āύāĻž āĻĒā§āϞ⧠vector āĻā§ āĻāϰā§, āϏā§āĻāĻžāĻ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤ - āύāϤā§āύāĻĻā§āϰ āĻĻā§āĻāĻāĻž āĻā§āύāĻž āĻĢāĻžāĻāĻĻ,
v[v.size()]āĻāϰ āĻāĻžāϞāĻŋ vector-āĻv.size() - 1, āĻāĻĻā§āϰ āĻāϏāϞ output āĻĻā§āĻā§āĻ āĻāĻŋāύāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
Amara āĻā§āϞāĻžāϏā§āϰ āύāĻŽā§āĻŦāϰāĻā§āϞ⧠āĻāĻāĻāĻž program-āĻ āϤā§āϞāĻā§, āĻāĻ āϞāĻžāĻāύ⧠āĻāĻāĻāĻž āĻāϰā§, āĻāĻžāϤāĻžāϰ āϏā§āϤā§āĻĒ āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻāĻžāϤāĻž āĻāϝāĻŧāĻāĻž, āĻ āĻāĻžāύ⧠āύāĻžāĨ¤ C track-āĻāϰ Module 14-āĻ āĻāĻ āĻāĻžāĻā§ āϞā§āĻā§āĻāĻŋāϞ malloc, realloc, āĻāĻāĻāĻž capacity variable, āĻāϰ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻŽāĻžāύā§āώā§āϰ āĻāĻĒāĻžāϞ⧠āĻ
āύā§āϤāϤ āĻāĻāĻāĻž bugāĨ¤ C++-āĻ āĻĒā§āϰ⧠āĻŦā§āϝāĻžāĻĒāĻžāϰāĻāĻž loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāĻāĻāĻž āϞāĻžāĻāύ: marks.push_back(x);āĨ¤ āĻāĻ lesson āĻāĻ āϞāĻžāĻāύāĻāĻž āĻĻā§āĻāĻžāĻŦā§, āĻāϰ āϤā§āĻŽāĻžāϰ āĻā§āĻā§āϰ āĻāĻĄāĻŧāĻžāϞ⧠āĻ āĻā§ āĻāϰā§, āϏā§āĻāĻžāĻāĨ¤
āϏāĻŽāϏā§āϝāĻžāĻāĻž: āĻāϝāĻŧāĻāĻž āĻāϏāĻŦā§, āĻāĻžāύāĻž āύā§āĻ
C-āĻāϰ array-āĻāϰ size āĻ āĻŋāĻ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ program āĻāϞāĻžāϰ āĻāĻā§āĻāĨ¤ Input āϝāĻĻāĻŋ array-āĻāϰ āĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž āĻšāϝāĻŧ, array overflow āĻāϰā§āĨ¤ āĻā§āĻ āĻšāϞ⧠āĻŦāĻžāĻĄāĻŧāϤāĻŋ āĻŦāĻžāĻā§āϏāĻā§āϞ⧠āĻ
āĻāĻžāϰāĻŖā§ āĻŦāϏ⧠āĻĨāĻžāĻā§āĨ¤ āĻāϰ C++ āĻāϤā§āϤāϰ āĻšāϞ⧠vector: array-āĻāϰ āĻŽāϤā§āĻ āĻāĻāĻ type-āĻāϰ āĻāĻ āϏāĻžāϰāĻŋ āĻŦāĻžāĻā§āϏ, āĻāĻŋāύā§āϤ⧠āĻļā§āώ⧠āĻāĻŋāĻā§ āϝā§āĻ āĻāϰāϞ⧠āύāĻŋāĻā§ āύāĻŋāĻā§āĻ āĻŦāĻĄāĻŧ āĻšāϝāĻŧāĨ¤ āĻāĻāĻž āĻĨāĻžāĻā§ <vector> header-āĻ, āĻāϰ āĻāϰ āĻĒā§āϰ⧠āύāĻžāĻŽ std::vectorāĨ¤
āĻāĻ āĻšāϞ⧠Amara-āϰ programāĨ¤ Input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āύāĻŽā§āĻŦāϰ āĻĒāĻĄāĻŧā§, āϤāĻžāϰāĻĒāϰ āĻŦāϞ⧠āĻāϝāĻŧāĻāĻž āĻĒāĻĄāĻŧāϞ āĻāϰ āĻāĻĻā§āϰ āĻāĻĄāĻŧ āĻāϤāĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> marks;
int x;
while (cin >> x) {
marks.push_back(x);
}
long long total = 0;
for (int m : marks) {
total += m;
}
cout << marks.size() << " marks\n";
cout << "average " << (double)total / marks.size() << '\n';
return 0;
}
5 marks
average 71.2
āĻāĻ output-āĻāĻž input 70 85 62 91 48-āĻāϰ āĻāύā§āϝāĨ¤ āĻĒā§āϰ⧠program-āĻ āĻā§āĻĨāĻžāĻ āĻā§āύ⧠size āϞā§āĻāĻž āύā§āĻāĨ¤ Module 1-āĻ āϝā§āĻŽāύ āĻĻā§āĻā§āĻ, input āĻļā§āώ āĻšāϞā§āĻ while (cin >> x) āĻĨā§āĻŽā§ āϝāĻžāϝāĻŧ, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž push_back āĻļā§āώ⧠āĻāĻāĻāĻž āĻāϰ⧠āύāĻŽā§āĻŦāϰ āĻā§āĻĄāĻŧā§ āĻĻā§āϝāĻŧāĨ¤ āϤāĻžāĻ vector āĻ āĻŋāĻ input-āĻāϰ āϏāĻŽāĻžāύ āϞāĻŽā§āĻŦāĻž āĻšāϝāĻŧāĨ¤
Zara āϏāĻŦāϏāĻŽāϝāĻŧ āϝāĻž āĻāĻā§ āĻāϰā§, āĻāĻŦāĻžāϰāĻ āϤāĻžāĻ āĻāϰā§: āĻāĻžāϞāĻŋ input āĻĻāĻŋāϝāĻŧā§ āĻāĻžāϞāĻžāϝāĻŧāĨ¤ Program print āĻāϰ⧠0 marks, āϤāĻžāϰāĻĒāϰ average -nan, āĻāĻžāϰāĻŖ 0.0 / 0 āĻā§āύ⧠āϏāĻāĻā§āϝāĻžāĻ āύāĻžāĨ¤ āύāĻŋāĻā§āϰ Example 2 āĻāϰ 3 āĻāĻžāĻ āĻāϰāĻžāϰ āĻŦāĻž āĻĒāĻĄāĻŧāĻžāϰ āĻāĻā§ āĻĻā§āĻā§ āύā§āϝāĻŧ, vector āĻāĻžāϞāĻŋ āĻāĻŋ āύāĻžāĨ¤
āĻāĻ āϏāĻžāϰāĻŋ āĻŦāĻžāĻā§āϏ, āϝā§āĻāĻž āύāĻŋāĻā§ āĻŦāĻĄāĻŧ āĻšāϝāĻŧ
Vector āĻāϰ element-āĻā§āϞ⧠āϰāĻžāĻā§ memory-āϰ āĻāĻāĻāĻžāĻ block-āĻ, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻ āĻŋāĻ C array-āĻāϰ āĻŽāϤā§āĨ¤ Element āĻŽāĻžāύ⧠āĻāĻāĻāĻž āĻŦāĻžāĻā§āϏāĨ¤ Block-āĻāϰ āĻļā§āώ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāϝāĻŧā§āĻāĻāĻž āĻŦāĻžāĻĄāĻŧāϤāĻŋ āĻŦāĻžāĻā§āϏ āĻĨāĻžāĻā§, āϝāĻžāϤ⧠āĻĒāϰā§āϰ push_back āĻāϏ⧠āĻāĻžāϝāĻŧāĻāĻž āĻĒāĻžāϝāĻŧāĨ¤
āϤāĻžāĻ āĻāĻāĻāĻž vector-āĻāϰ āĻĻā§āĻāĻāĻž āϏāĻāĻā§āϝāĻž āĻĨāĻžāĻā§āĨ¤ āĻāϰ size āĻŽāĻžāύ⧠āĻāĻ āĻŽā§āĻšā§āϰā§āϤ⧠āĻ āĻāϝāĻŧāĻāĻž element āϧāϰ⧠āĻāĻā§āĨ¤ āĻāϰ capacity āĻŽāĻžāύ⧠block-āĻ āĻāϝāĻŧāĻāĻž āĻŦāĻžāĻā§āϏā§āϰ āĻāĻžāϝāĻŧāĻāĻž āĻāĻā§āĨ¤ Size āĻāĻāύ⧠capacity-āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻšāϝāĻŧ āύāĻžāĨ¤ C track-āĻ āĻāĻ āĻĻā§āĻāĻāĻž āϏāĻāĻā§āϝāĻž āϤā§āĻŽāĻŋ āύāĻŋāĻā§ āĻĻā§āĻāĻāĻž variable-āĻ āϰāĻžāĻāϤā§, āĻāϰ vector āĻĻā§āĻā§āĻ āϤā§āĻŽāĻžāϰ āĻšāϝāĻŧā§ āϰāĻžāĻā§āĨ¤
āϤāĻžāĻ size āĻšāϞ⧠āϤā§āĻŽāĻŋ āĻāϝāĻŧāĻāĻž āϰā§āĻā§āĻ, āĻāϰ capacity āĻšāϞ⧠vector āĻāĻā§ āĻĨā§āĻā§āĻ āĻāϤāĻāĻž āĻāĻžāϝāĻŧāĻāĻž āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āϰā§āĻā§āĻā§āĨ¤
āĻĒā§āϰāĻĨāĻŽ āĻĻāĻŋāύā§āĻ āϝ⧠syntax āϞāĻžāĻāĻŦā§
āĻāĻāĻāĻž vector, āĻāϰ āĻāϰ āϰā§āĻāĻāĻžāϰ call-āĻā§āϞā§
#include <vector>
vector<T> v; an empty vector of T
vector<int> v(n, 0); n elements, every one 0
vector<int> v{1, 2, 3}; exactly these three elements
v.push_back(x); add x at the end
v[i] the element at index i, 0 to v.size() - 1
v.size() how many elements it holds
v.empty() true when it holds none
vector<T>: angle bracket-āĻāϰ āĻāĻŋāϤāϰ⧠āĻĨāĻžāĻā§ element-āĻāϰ type, Module 1-āĻāϰ template-āĻāϰ lesson-āĻ āϝā§āĻŽāύ āĻĻā§āĻā§āĻāĨ¤vector<int>,vector<double>āĻāϰvector<string>āϤāĻŋāύāĻāĻž āĻāϞāĻžāĻĻāĻž typeāĨ¤push_back(x): āĻļā§āώ element-āĻāϰ āĻĒāϰ⧠x-āĻāϰ āĻāĻāĻāĻž copy āĻŦāϏāĻžāϝāĻŧāĨ¤ Size āĻāĻ āĻŦāĻžāĻĄāĻŧā§āĨ¤v[i]: āĻāĻāĻāĻž element āĻĒāĻĄāĻŧā§ āĻŦāĻž āϞā§āĻā§, āĻ āĻŋāĻ array-āĻāϰ āĻāĻāĻāĻž āĻŦāĻžāĻā§āϏā§āϰ āĻŽāϤā§āĨ¤ i āϏā§āĻŽāĻžāϰ āĻŽāϧā§āϝ⧠āĻāĻā§ āĻāĻŋ āύāĻž, āĻā§āĻ check āĻāϰ⧠āύāĻžāĨ¤size()āĻāϰempty(): āύāĻŋāĻā§ āĻā§āύ⧠āϰāĻžāĻāĻžāϰ āĻŦāĻĻāϞ⧠vector-āĻā§āĻ āĻāĻŋāĻā§āĻā§āϏ āĻāϰā§āĨ¤
āϤāĻžāĻ vector declare āĻāϰ⧠angle bracket-āĻ element-āĻāϰ type āϞāĻŋāĻā§, āĻāϰ āĻŦāĻžāĻāĻŋ āϏāĻŦāĻāĻŋāĻā§ āĻšāϞ⧠dot āĻĻāĻŋāϝāĻŧā§ āĻāϰ āĻāĻĒāϰ āĻāĻāĻāĻž callāĨ¤
Vector āĻŦāĻžāύāĻžāύā§āϰ āĻāĻžāϰ āĻāĻĒāĻžāϝāĻŧ
Vector āϤā§āĻŽāĻŋ āĻŦāĻžāύāĻžāĻŦā§ āĻāĻžāϰ āϰāĻāĻŽ āĻā§āĻšāĻžāϰāĻžāϝāĻŧāĨ¤ āĻāĻ program āĻĒā§āϰāϤāĻŋāĻāĻžāϰ āĻāĻāĻāĻž āĻāϰ⧠āĻŦāĻžāύāĻžāϝāĻŧ, āϤāĻžāϰāĻĒāϰ āĻāĻĻā§āϰ size āĻāϰ element-āĻā§āϞ⧠print āĻāϰā§āĨ¤
#include <iostream>
#include <vector>
using namespace std;
void show(const char* name, const vector<int>& v) {
cout << name << ": size " << v.size() << " [";
for (int x : v) {
cout << ' ' << x;
}
cout << " ]\n";
}
int main() {
vector<int> empty_one;
vector<int> zeros(5);
vector<int> sevens(5, 7);
vector<int> listed{3, 1, 4};
show("empty_one", empty_one);
show("zeros", zeros);
show("sevens", sevens);
show("listed", listed);
return 0;
}
empty_one: size 0 [ ]
zeros: size 5 [ 0 0 0 0 0 ]
sevens: size 5 [ 7 7 7 7 7 ]
listed: size 3 [ 3 1 4 ]
āĻāĻžāϰāĻāĻž āϞāĻžāĻāύā§āϰ āĻŽāĻžāύ⧠āύāĻŋāĻā§āϰ table-āĻāĨ¤
| Declaration | āϝāĻž āĻĒāĻžāĻ | āĻāĻāύ āϞāĻŋāĻāĻŦā§ |
|---|---|---|
vector<int> v; | āĻā§āύ⧠element āύā§āĻ | input āĻāϏāĻžāϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ push_back āĻāϰāĻŦā§ |
vector<int> v(n); | n-āĻāĻž element, āĻĒā§āϰāϤāĻŋāĻāĻž 0 | n āĻāĻžāύāĻž āĻāĻā§, index āϧāϰ⧠āĻāϰāĻŦā§ |
vector<int> v(n, x); | n-āĻāĻž element, āĻĒā§āϰāϤāĻŋāĻāĻž x | āϏāĻŦ element āĻāĻāĻ āĻŽāĻžāύ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻŦā§ |
vector<int> v{a, b, c}; | āĻ āĻŋāĻ a, b, c | program āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧā§āĻ āĻŽāĻžāύāĻā§āϞ⧠āĻāĻžāύāĻž |
Initialiser āĻāĻžāĻĄāĻŧāĻž C array-āϤ⧠garbage āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠vector<int> v(n)-āĻ āĻāĻāύ⧠garbage āĻĨāĻžāĻā§ āύāĻž, āĻāϰ element-āĻā§āϞ⧠āĻļā§āϰ⧠āĻšāϝāĻŧ 0 āĻĻāĻŋāϝāĻŧā§āĨ¤ Helper show vector-āĻāĻž āύā§āϝāĻŧ const& āĻĻāĻŋāϝāĻŧā§, āĻŽāĻžāύ⧠Module 1-āĻāϰ āϏā§āĻ read-only āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āύāĻžāĻŽ, āϤāĻžāĻ āĻā§āύ⧠copy āĻšāϝāĻŧ āύāĻžāĨ¤ āϤāĻžāĻ āĻā§āϞ bracket āĻĻā§āϝāĻŧ āĻāĻāĻāĻž āĻā§āύāϤāĻŋ, āĻāϰ braces āĻĻā§āϝāĻŧ āĻāĻāĻāĻž āϤāĻžāϞāĻŋāĻāĻžāĨ¤ āĻāĻĨāĻžāĻāĻž āĻŽāύ⧠āϰā§āĻā§, āĻŽāĻžāĻĨāĻž āĻāĻžāĻāĻžāĻ āĻ
āĻāĻļā§ āϞāĻžāĻāĻŦā§āĨ¤
push_back, āĻāϰ input āĻļā§āώ āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧāĻž
āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āϝ⧠call āϞāĻŋāĻāĻŦā§, āϏā§āĻāĻž push_backāĨ¤ Input-āĻāϰ loop-āĻ āĻ "āĻāϝāĻŧāĻāĻž āĻāϏāĻŦā§ āĻāĻžāύāĻŋ āύāĻž"-āĻā§ āĻŦāĻžāύāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ "āĻāĻžāύāĻžāϰ āĻĻāϰāĻāĻžāϰāĻ āύā§āĻ"āĨ¤ n āĻāĻžāύāĻž āĻĨāĻžāĻāϞā§āĻ āĻāĻžāϞāĻŋ vector-āĻ push_back āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰā§, āĻ
āĻĨāĻŦāĻž āĻāĻā§ size āĻ āĻŋāĻ āĻāϰ⧠index āϧāϰ⧠āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĻā§āĻā§āĻ āĻ āĻŋāĻāĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<int> b;
int x;
while (cin >> x) {
b.push_back(x);
}
cout << "a has " << a.size() << ", b has " << b.size() << '\n';
return 0;
}
a has 3, b has 4
āĻāĻ output-āĻāĻž input 3, āϤāĻžāϰāĻĒāϰ 10 20 30, āϤāĻžāϰāĻĒāϰ 7 8 9 6-āĻāϰ āĻāύā§āϝāĨ¤ āĻĒā§āϰāĻĨāĻŽ loop āĻ āĻŋāĻ n-āĻāĻž āĻŽāĻžāύ āĻĒāĻĄāĻŧā§, āĻāĻŽāύ āĻŦāĻžāĻā§āϏ⧠āϝā§āĻā§āϞ⧠āĻāĻā§ āĻĨā§āĻā§āĻ āĻāĻā§āĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻāĻž āĻŦāĻžāĻāĻŋ āϝāĻž āĻĨāĻžāĻā§, āϏāĻŦ āύāĻŋāϝāĻŧā§ āύā§āϝāĻŧāĨ¤ āϤāĻžāĻ a[i] āĻāĻā§ āĻĨā§āĻā§ āĻĨāĻžāĻāĻž āĻāĻāĻāĻž element āĻāϰā§, āĻāϰ push_back āĻāĻāĻĻāĻŽ āύāϤā§āύ āĻāĻāĻāĻž āĻŦāĻžāύāĻžāϝāĻŧāĨ¤
āĻāĻžāϝāĻŧāĻāĻž āĻĢā§āϰāĻŋāϝāĻŧā§ āĻā§āϞ⧠āĻāĻŋāϤāϰ⧠āĻā§ āĻšāϝāĻŧ
Block āĻāϰāĻž āĻĨāĻžāĻāϞ⧠push_back āĻāĻāĻžāĻā§ āĻā§āύ⧠āϞāĻŽā§āĻŦāĻž āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻž, āĻāĻžāϰāĻŖ block-āĻāϰ āĻ āĻŋāĻ āĻĒāϰā§āϰ memory āĻšāϝāĻŧāϤ⧠āĻ
āύā§āϝ āĻāĻžāϰāĻāĨ¤ āϤāĻžāĻ vector āĻāĻžāϰāĻāĻž āĻāĻžāĻ āĻāϰā§: āύāϤā§āύ, āĻāϰāĻ āĻŦāĻĄāĻŧ āĻāĻāĻāĻž block āĻāĻžāϝāĻŧ, āĻĒā§āϰāϤāĻŋāĻāĻž element āϏā§āĻāĻžāύ⧠copy āĻāϰā§, āĻĒā§āϰā§āύ⧠block-āĻāĻž free āĻāϰā§, āϤāĻžāϰāĻĒāϰ āύāϤā§āύ element-āĻāĻž āϝā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻžāĻā§āĻ āĻŦāϞ⧠reallocationāĨ¤
āĻāĻŦāĻžāϰ āύāĻŋāĻā§āϰ āĻā§āĻā§ āĻĻā§āĻā§āĨ¤ āĻāĻ program āĻāĻāĻāĻž āĻāĻžāϞāĻŋ vector-āĻ āĻĒāĻžāĻāĻāĻāĻž āύāĻŽā§āĻŦāϰ push āĻāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž call-āĻāϰ āĻĒāϰ⧠print āĻāϰ⧠size, capacity, āĻāϰ element-āĻā§āϞ⧠āĻāĻāύ āύāϤā§āύ block-āĻ āĻāĻ ā§āĻā§ āĻāĻŋ āύāĻžāĨ¤ data() return āĻāϰ⧠block-āĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻļā§āϰā§, āϤāĻžāĻ data() āĻŦāĻĻāϞ⧠āĻā§āϞ⧠āĻŦā§āĻāĻŦā§ vector āĻāĻžāϝāĻŧāĻāĻž āĻŦāĻĻāϞā§āĻā§āĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> marks;
int input[] = {70, 85, 62, 91, 48};
for (int x : input) {
const int* before = marks.data();
marks.push_back(x);
cout << "push_back(" << x << "): size " << marks.size()
<< ", capacity " << marks.capacity();
if (marks.data() != before) {
cout << ", new block";
}
cout << '\n';
}
return 0;
}
push_back(70): size 1, capacity 1, new block
push_back(85): size 2, capacity 2, new block
push_back(62): size 3, capacity 4, new block
push_back(91): size 4, capacity 4
push_back(48): size 5, capacity 8, new block
āύāĻŋāĻā§ āĻāĻāĻ āĻĒāĻžāĻāĻāĻāĻž call āĻāĻ āĻāĻ āϧāĻžāĻĒ āĻāϰ⧠āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϧāĻžāĻĒā§ āĻĻā§āĻāĻŦā§ āĻāĻā§āϰ āĻāϰ āĻĒāϰā§āϰ block, āĻāϰ āĻāϝāĻŧāĻāĻž element copy āĻšāϞā§āĨ¤
āĻāĻŽāĻžāĻĻā§āϰ compiler-āĻ capacity āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻšāϝāĻŧ: 1, 2, 4, 8, āϤāĻžāϰāĻĒāϰ 16, 32, āĻāĻāĻžāĻŦā§āĨ¤ āĻāϤ āĻā§āĻŖ āĻŦāĻžāĻĄāĻŧāĻŦā§, C++ standard āϏā§āĻāĻž āĻŦā§āĻāϧ⧠āĻĻā§āϝāĻŧ āύāĻžāĨ¤ āĻ āĻļā§āϧ⧠āĻāĻĨāĻž āĻĻā§āϝāĻŧ, āĻ
āύā§āĻāĻā§āϞ⧠call āĻŽāĻŋāϞāĻŋāϝāĻŧā§ āϧāϰāϞ⧠āĻāĻĄāĻŧā§ push_back-āĻāϰ āĻāϰāĻ constant timeāĨ¤ āϤāĻžāĻ copy āĻā§āĻŦ āĻāĻŽāĻ āĻšāϝāĻŧ: āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ call āĻļā§āϧ⧠āĻāĻāĻāĻž āĻĢāĻžāĻāĻāĻž āĻŦāĻžāĻā§āϏ āĻāϰā§āĨ¤ āĻĒā§āϰ⧠āĻšāĻŋāϏāĻžāĻŦāĻāĻž āĻāϰ⧠āĻĻā§āĻāĻžāĻŦā§ lesson 05āĨ¤
āϤāĻžāĻ push_back āĻĒā§āϰāĻžāϝāĻŧ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰāĻ āϏāϏā§āϤāĻž, āĻļā§āϧ⧠āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ āĻĒā§āϰ⧠vector-āĻāĻž āĻ
āύā§āϝ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āϏāϰāĻŋāϝāĻŧā§ āύā§āϝāĻŧāĨ¤
Index, āĻāϰ āĻļā§āώ index
Vector-āĻāϰ element-āĻā§āϞā§āϰ āύāĻŽā§āĻŦāϰ array-āĻāϰ āĻŽāϤā§āĻ, āĻļā§āϰ⧠0 āĻĨā§āĻā§āĨ¤ n size-āĻāϰ vector-āĻ index āĻāϞ⧠0 āĻĨā§āĻā§ n - 1 āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻļā§āώ element āĻšāϞ⧠v[v.size() - 1], āĻāϰ āĻāϰ āĻā§āĻ āϰā§āĻĒ v.back() āĻĻā§āĻāĻžāĻŦā§ lesson 02āĨ¤
Bob Amara-āϰ āύāĻŽā§āĻŦāϰāĻā§āϞ⧠print āĻāϰāĻā§āĨ¤ āĻļā§āώā§āϰāĻāĻž āϝā§āύ āĻā§āύā§āĻāĻžāĻŦā§āĻ āĻŦāĻžāĻĻ āύāĻž āĻĒāĻĄāĻŧā§, āϤāĻžāĻ āĻ āϞā§āĻā§ <=āĨ¤
vector<int> marks{70, 85, 62, 91, 48};
for (int i = 0; i <= marks.size(); i++) {
cout << marks[i] << ' ';
}
Playground-āĻ āĻāĻāĻž āĻā§āύ⧠āĻŦāĻžāϰā§āϤāĻž āĻāĻžāĻĄāĻŧāĻžāĻ compile āĻšāϝāĻŧā§āĻā§, āĻāϰ āĻļā§āώ āĻšāϝāĻŧā§āĻā§ āϏāĻĢāϞ badge āύāĻŋāϝāĻŧā§āĨ¤ Print āĻāϰā§āĻā§ 70 85 62 91 48 0āĨ¤ āĻļā§āώā§āϰ 0-āĻāĻž āĻšāϞ⧠marks[5], āĻāϰ āĻāĻ āĻŦāĻžāĻā§āϏāĻāĻž āĻā§āύ⧠element āύāĻž: block-āĻāϰ āĻ āĻŋāĻ āĻĒāϰ⧠memory-āϤ⧠āϝāĻž āĻĒāĻĄāĻŧā§ āĻāĻŋāϞ, āϏā§āĻāĻžāĻāĨ¤ C track-āĻāϰ array lesson-āĻāϰ āϏā§āĻ āĻāĻāĻ āύā§āϰāĻŦ bug, āĻāĻžāϰāĻŖ v[i] āĻāĻŋāĻā§āĻ check āĻāϰ⧠āύāĻžāĨ¤ āĻ
āύā§āϝ āĻĻāĻŋāύ⧠āĻŦāĻž āĻ
āύā§āϝ āĻŽā§āĻļāĻŋāύ⧠āĻāĻ 0 āϝā§āĻā§āύ⧠āϏāĻāĻā§āϝāĻž āĻšāϤ⧠āĻĒāĻžāϰā§, āĻāĻŽāύāĻāĻŋ program crash-āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻ āĻŋāĻ āĻāϰāϤ⧠āϞā§āĻā§ i < marks.size()āĨ¤ āϤā§āĻŽāĻŋ <= āϞāĻŋāĻāĻŦā§, āĻāĻžāϰāĻŖ "size āĻĒāϰā§āϝāύā§āϤ" āĻļā§āύāϞ⧠āĻŽāύ⧠āĻšāϝāĻŧ size-āĻ āϤāĻžāϰ āĻŽāϧā§āϝ⧠āĻĒāĻĄāĻŧā§āĨ¤ āϤāĻžāĻ āĻāĻāĻāĻž index āϏā§āĻŽāĻžāϰ āĻŽāϧā§āϝ⧠āĻĨāĻžāĻā§ āϤāĻāύāĻ, āϝāĻāύ 0 <= i āĻāϰ i < v.size()āĨ¤ āϝ⧠at() āύāĻŋāĻā§āĻ check āĻāϰā§, āϏā§āĻāĻž āĻĻā§āĻāĻžāĻŦā§ lesson 02āĨ¤
size() āĻāĻāĻāĻž unsigned āϏāĻāĻā§āϝāĻž
v.size() āĻā§āύ⧠int return āĻāϰ⧠āύāĻžāĨ¤ āĻ return āĻāϰ⧠size_t, āĻāĻāĻāĻž unsigned type: āĻāĻŽāύ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āϝā§āĻāĻž āĻāĻāύ⧠negative āĻšāϝāĻŧ āύāĻžāĨ¤ Playground-āĻ āĻāĻāĻž 64 bit āĻāĻāĻĄāĻŧāĻžāĨ¤ āϤāĻžāĻ 0-āĻāϰ āύāĻŋāĻā§ āύāĻžāĻŽāϤ⧠āĻā§āϞ⧠āĻā§āϰ⧠āĻāĻāĻĻāĻŽ āĻāĻĒāϰā§āϰ āĻŽāĻžāĻĨāĻžāϝāĻŧ āĻāϞ⧠āϝāĻžāϝāĻŧ, C track-āĻāϰ Module 2-āĻ unsigned āϏāĻāĻā§āϝāĻž āϝā§āĻŽāύ āĻāϰā§āĻāĻŋāϞāĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v;
cout << "size: " << v.size() << '\n';
cout << "size - 1: " << v.size() - 1 << '\n';
return 0;
}
size: 0
size - 1: 18446744073709551615
Zara āϏāĻŦāϏāĻŽāϝāĻŧ āĻāĻā§ āĻāĻžāϞāĻŋ input āĻāĻžāϞāĻžāϝāĻŧāĨ¤ āĻāĻŦāĻžāϰ āĻ Bob-āĻāϰ "āĻļā§āώ index" loop-āĻāĻž āĻāĻāĻāĻž āĻāĻžāϞāĻŋ vector-āĻ āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§āĨ¤
vector<int> v;
for (int i = 0; i <= v.size() - 1; i++) {
cout << v[i] << '\n';
}
Bob āĻā§āĻŦā§āĻāĻŋāϞ loop āĻāĻāĻŦāĻžāϰāĻ āĻāϞāĻŦā§ āύāĻžāĨ¤ āĻāĻŋāύā§āϤ⧠v.size() - 1 āĻšāϞ⧠18446744073709551615, āϤāĻžāĻ i <= ... test-āĻāĻž āϏāĻŦāϏāĻŽāϝāĻŧ āϏāϤā§āϝāĻŋ āĻĨāĻžāĻā§, āĻāϰ loop āĻāĻžāϞāĻŋ vector āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āĻŦāĻšā§ āĻĻā§āϰ āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧāϤ⧠āĻĨāĻžāĻā§āĨ¤ Playground-āĻ āĻāĻŋāĻā§āĻ print āύāĻž āĻāϰ⧠āĻāĻāĻž āĻļā§āώ āĻšāϝāĻŧā§āĻā§ Runtime error badge āύāĻŋāϝāĻŧā§āĨ¤
Playground -Wall āĻāĻžāĻĄāĻŧāĻž compile āĻāϰā§, āϤāĻžāĻ āĻāĻŋāĻā§āĻ āĻŦāϞ⧠āύāĻžāĨ¤ āύāĻŋāĻā§āϰ āĻŽā§āĻļāĻŋāύ⧠-Wall -Wextra āĻĻāĻŋāϞ⧠GCC 12 āĻĻā§āĻ āϰāĻāĻŽ type āĻŽā§āĻļāĻžāύ⧠āύāĻŋāϝāĻŧā§ warning āĻĻā§āϝāĻŧ: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]āĨ¤ āϞā§āĻā§ i < v.size(), āϝā§āĻāĻž āĻĻāĻžāĻāĻĄāĻŧāĻžāϝāĻŧ 0 < 0, āĻŽāĻžāύ⧠āĻŽāĻŋāĻĨā§āϝāĻž, āĻ
āĻĨāĻŦāĻž āĻāĻā§ v.empty() check āĻāϰā§āĨ¤ āϤāĻžāĻ vector āĻāĻžāϞāĻŋ āύāĻž, āĻāĻāĻž āύāĻŋāĻļā§āĻāĻŋāϤ āĻšāĻāϝāĻŧāĻžāϰ āĻāĻā§ āĻāĻāύ⧠size() āĻĨā§āĻā§ āĻŦāĻŋāϝāĻŧā§āĻ āĻā§āϰ⧠āύāĻžāĨ¤
Range-for āĻĒā§āϰāϤāĻŋāĻāĻž element āĻā§āϰ⧠āĻāϏā§
āϝāĻāύ āĻĒā§āϰāϤāĻŋāĻāĻž element āĻā§āϰāĻŽ āϧāϰ⧠āϞāĻžāĻāĻŦā§, āĻāĻŋāύā§āϤ⧠index āϞāĻžāĻāĻŦā§ āύāĻž, āϤāĻāύ Module 1-āĻāϰ range-for-āĻ āϏāĻŦāĻā§āϝāĻŧā§ āĻĒāϰāĻŋāώā§āĻāĻžāϰ loopāĨ¤ for (int m : marks) āϤā§āĻŽāĻžāĻā§ āĻĒā§āϰāϤāĻŋāĻāĻž element-āĻāϰ āĻāĻāĻāĻž copy āĻĻā§āϝāĻŧāĨ¤ for (int& m : marks) āĻĻā§āϝāĻŧ āĻĒā§āϰāϤāĻŋāĻāĻžāϰ āĻāĻāĻāĻž āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āύāĻžāĻŽ, āϤāĻžāĻ āϝāĻž āĻŦāĻĻāϞāĻžāĻŦā§, āϏā§āĻāĻž vector-āĻ āĻāĻŋāϝāĻŧā§ āĻĒā§āĻāĻāĻžāĻŦā§āĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> marks{70, 85, 62};
for (int m : marks) {
m += 5;
}
cout << "after the copy loop:";
for (int m : marks) {
cout << ' ' << m;
}
cout << '\n';
for (int& m : marks) {
m += 5;
}
cout << "after the reference loop:";
for (int m : marks) {
cout << ' ' << m;
}
cout << '\n';
return 0;
}
after the copy loop: 70 85 62
after the reference loop: 75 90 67
āϤāĻžāĻ āĻļā§āϧ⧠āĻĒāĻĄāĻŧāϤ⧠āĻāĻžāĻāϞ⧠int m (element āĻŦāĻĄāĻŧ āĻšāϞ⧠const int& m), āĻāϰ āĻŦāĻĻāϞāĻžāϤ⧠āĻāĻžāĻāϞ⧠int& māĨ¤ Range-for āĻāĻāύ⧠āĻļā§āώā§āϰ āĻŦāĻžāĻāϰ⧠āϝāĻžāϝāĻŧ āύāĻž, āϤāĻžāĻ Bob-āĻāϰ āĻā§āϞāĻāĻž āĻāĻāĻžāύ⧠āĻšāϤā§āĻ āĻĒāĻžāϰ⧠āύāĻžāĨ¤
āϤāĻŋāύāĻŦāĻžāϰ push_back, āϤāĻžāϰāĻĒāϰ size, āϤāĻžāϰāĻĒāϰ index āϧāϰ⧠āĻĒā§āϰāϤāĻŋāĻāĻž elementāĨ¤ āĻĒā§āϰ⧠āϧāĻžāϰāĻŖāĻžāĻāĻž main-āĻāϰ āĻŽāĻžāϤā§āϰ āĻāϝāĻŧā§āĻ āϞāĻžāĻāύā§āĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<double> temps;
temps.push_back(21.5);
temps.push_back(23.0);
temps.push_back(19.75);
cout << temps.size() << " readings\n";
for (size_t i = 0; i < temps.size(); i++) {
cout << "temps[" << i << "] = " << temps[i] << '\n';
}
return 0;
}
3 readings
temps[0] = 21.5
temps[1] = 23
temps[2] = 19.75
Index-āĻāĻž āĻāĻāĻāĻž size_t, size()-āĻāϰ āϏāĻžāĻĨā§ āĻāĻāĻ type, āϤāĻžāĻ āϤā§āϞāύāĻžāϝāĻŧ āĻā§āύ⧠type āĻŽā§āĻļā§ āύāĻžāĨ¤ cout 23.0-āĻā§ print āĻāϰ⧠23 āĻšāĻŋāϏā§āĻŦā§: āĻĻāĻļāĻŽāĻŋāĻā§āϰ āĻĒāϰ⧠āĻāĻŋāĻā§ āύāĻž āĻĨāĻžāĻāϞ⧠āĻāĻāĻāĻž double-āĻāϰ āĻāύā§āϝ āĻāĻāĻžāĻ āĻāϰ defaultāĨ¤
Input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ Amara āύāĻŽā§āĻŦāϰ āĻĒāĻĄāĻŧā§āĨ¤ āϤāĻžāϰāĻĒāϰ āϏāĻŦāĻā§āϞ⧠āĻāĻ āϞāĻžāĻāύ⧠print āĻāϰā§, āϏāĻžāĻĨā§ āĻāϝāĻŧāĻāĻž āύāĻŽā§āĻŦāϰ āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āύāĻŽā§āĻŦāϰāĻāĻžāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋāĻāĻžāϰ āĻšāĻŋāϏāĻžāĻŦ āĻļā§āϰ⧠āĻšāϝāĻŧ marks[0] āĻĨā§āĻā§, āϤāĻžāĻ program āĻāĻā§ āĻĻā§āĻā§ āύā§āϝāĻŧ, āĻ
āύā§āϤāϤ āĻāĻāĻāĻž āύāĻŽā§āĻŦāϰ āĻāĻā§ āĻāĻŋ āύāĻžāĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> marks;
int x;
while (cin >> x) {
marks.push_back(x);
}
if (marks.empty()) {
cout << "no marks\n";
return 0;
}
int best = marks[0];
cout << "marks:";
for (int m : marks) {
cout << ' ' << m;
if (m > best) {
best = m;
}
}
cout << '\n' << marks.size() << " marks, highest " << best << '\n';
return 0;
}
marks: 70 85 62 91 48
5 marks, highest 91
āĻāĻ output-āĻāĻž input 70 85 62 91 48-āĻāϰ āĻāύā§āϝāĨ¤ āĻāĻžāϞāĻŋ input āĻĻāĻŋāϞ⧠print āĻāϰ⧠no marksāĨ¤ empty() check āύāĻž āĻĨāĻžāĻāϞ⧠āĻāĻžāϞāĻŋ vector-āĻ marks[0] āĻāĻŽāύ āĻāĻāĻāĻž āĻŦāĻžāĻā§āϏ āĻĒāĻĄāĻŧāϤ, āϝā§āĻāĻžāϰ āĻā§āύ⧠āĻ
āϏā§āϤāĻŋāϤā§āĻŦāĻ āύā§āĻāĨ¤
Input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ Zara āĻĻā§āĻāĻžāύā§āϰ āĻĻāĻžāĻŽ āĻĒāĻĄāĻŧā§āĨ¤ āϰāϏāĻŋāĻĻā§ āϝā§āĻŽāύ āĻĨāĻžāĻā§, āϤā§āĻŽāύāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāĻžāĻŽ print āĻāϰ⧠1 āĻĨā§āĻā§ āĻā§āύāĻž āĻā§āϰāĻŽāĻŋāĻ āύāĻŽā§āĻŦāϰāϏāĻš, āϤāĻžāϰāĻĒāϰ āĻŽā§āĻāĨ¤ āĻāĻžāϞāĻŋ input-āĻāϰ case-āĻāĻž āĻ āϞāĻŋāĻā§āĻā§ āϏāĻŦāĻāĻŋāĻā§āϰ āĻāĻā§āĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> prices;
int p;
while (cin >> p) {
prices.push_back(p);
}
if (prices.empty()) {
cout << "no prices\n";
return 0;
}
long long total = 0;
for (size_t i = 0; i < prices.size(); i++) {
cout << "item " << i + 1 << ": " << prices[i] << '\n';
total += prices[i];
}
cout << "total: " << total << '\n';
cout << "last item: " << prices[prices.size() - 1] << '\n';
return 0;
}
item 1: 120
item 2: 45
item 3: 300
item 4: 80
total: 545
last item: 80
āĻāĻ output-āĻāĻž input 120 45 300 80-āĻāϰ āĻāύā§āϝāĨ¤ āĻāĻāĻžāύ⧠prices.size() - 1 āύāĻŋāϰāĻžāĻĒāĻĻ, āĻāĻžāϰāĻŖ āϤāĻžāϞāĻŋāĻāĻž āĻāĻžāϞāĻŋ āĻšāϞ⧠empty() check āĻāĻā§āĻ return āĻāϰ⧠āĻĻāĻŋāϝāĻŧā§āĻā§āĨ¤ āϰāϏāĻŋāĻĻā§āϰ āύāĻŽā§āĻŦāϰ i + 1, āĻāĻŋāύā§āϤ⧠index āĻĨā§āĻā§ āϝāĻžāϝāĻŧ iāĨ¤
āĻāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻāĻžāĻā§ āϞāĻžāĻā§
- Bitcoin Core. āĻāĻāĻāĻž transaction āĻāϰ input āĻāϰ output āϰāĻžāĻā§ āĻĻā§āĻāĻāĻž vector-āĻ,
std::vector<CTxIn> vināĻāϰstd::vector<CTxOut> vout, fileprimitives/transaction.h-āĻāĨ¤ āĻāĻāĻāĻž transaction-āĻ āϝāϤāĻā§āϞ⧠āĻā§āĻļāĻŋ input āĻāϰ output āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āϤāĻžāĻ āϏāĻāĻā§āϝāĻžāĻāĻž āĻāĻžāύāĻž āϝāĻžāϝāĻŧ āĻļā§āϧ⧠āĻĒāĻĄāĻŧāĻžāϰ āϏāĻŽāϝāĻŧāĨ¤ - ROS 2. Robot Operating System āĻāĻāĻāĻž message-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž array field, āϝā§āĻŽāύ laser scan-āĻāϰ
float32[] ranges, generate āĻāϰāĻž C++ code-āĻ āĻŦāĻžāύāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧ āĻāĻāĻāĻžstd::vectorāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž scan-āĻ reading-āĻāϰ āϏāĻāĻā§āϝāĻž āĻāϞāĻžāĻĻāĻž āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ - LLVM āĻāϰ Clang. āĻāĻ compiler āύāĻžāύāĻž āĻāĻŋāύāĻŋāϏā§āϰ āϤāĻžāϞāĻŋāĻāĻž, āϝā§āĻŽāύ āĻāĻāĻāĻž function-āĻāϰ argument āĻŦāĻž āĻāĻāĻāĻž instruction-āĻāϰ operand, āϰāĻžāĻā§ vector-āĻāϰ āĻŽāϤ⧠container-āĻāĨ¤ āĻāĻĻā§āϰ āύāĻŋāĻā§āĻĻā§āϰ
SmallVectorāĻāĻŽāύ āĻāĻāĻāĻž vector, āϝāĻžāϰ āĻāĻŋāϤāϰā§āĻ āĻāϝāĻŧā§āĻāĻāĻž āĻŦāĻžāĻā§āϏ āĻŦāĻžāύāĻžāύ⧠āĻĨāĻžāĻā§; āĻāĻāĻž āĻā§āύ āĻāĻā§, āϏā§āĻāĻž āĻŦāϞāĻŦā§ lesson 05āĨ¤
āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§
ā§§. āĻāĻŽāύ index-āĻ āϞā§āĻāĻž, āϝā§āĻāĻž āĻāĻāύ⧠āύā§āĻāĨ¤
vector<int> marks;
for (int i = 0; i < 3; i++) {
cin >> marks[i];
}
āĻā§āύ⧠command line-āĻāĻ āĻā§āύ⧠āĻŦāĻžāϰā§āϤāĻž āύā§āĻāĨ¤ Playground-āĻ input 70 85 62 āĻĻāĻŋāϝāĻŧā§ āĻāĻžāϞāĻžāϞ⧠āĻāĻāĻž āĻļā§āώ āĻšāϝāĻŧā§āĻā§ Runtime error badge āύāĻŋāϝāĻŧā§, āĻāĻŋāĻā§āĻ print āĻāϰā§āύāĻŋāĨ¤ marks āĻāĻžāϞāĻŋ, āϤāĻžāĻ marks[0] āĻā§āύ⧠āĻŦāĻžāĻā§āϏāĻ āύāĻž; [] āĻāĻāύ⧠āύāϤā§āύ element āĻŦāĻžāύāĻžāϝāĻŧ āύāĻžāĨ¤ marks.push_back(x) āϞā§āĻā§, āĻ
āĻĨāĻŦāĻž āĻāĻā§ vector<int> marks(3); āĻĻāĻŋāϝāĻŧā§ āĻŦāĻžāĻā§āϏāĻā§āϞ⧠āĻŦāĻžāύāĻŋāϝāĻŧā§ āύāĻžāĻāĨ¤ āϤā§āĻŽāĻŋ āĻāĻ āĻā§āϞāĻāĻž āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ āĻ āĻŋāĻ size-āĻāϰ array-āϤ⧠āĻŦāĻžāĻā§āϏāĻā§āϞ⧠āĻāĻā§ āĻĨā§āĻā§āĻ āĻĨāĻžāĻāϤāĨ¤
⧍. #include <vector> āϞāĻŋāĻāϤ⧠āĻā§āϞ⧠āϝāĻžāĻāϝāĻŧāĻžāĨ¤
#include <iostream>
using namespace std;
int main() {
vector<int> marks;
}
āĻĒā§āϰāϤāĻŋāĻāĻž command line-āĻ error, Playground-āϏāĻš: error: 'vector' was not declared in this scopeāĨ¤ GCC 12 āύāĻŋāĻā§āĻ āϏāĻŽāĻžāϧāĻžāύāĻāĻž āĻŦāϞ⧠āĻĻā§āϝāĻŧ: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?āĨ¤ Include-āĻāĻž āϝā§āĻ āĻāϰā§āĨ¤ āϤā§āĻŽāĻŋ āĻāĻāĻž āĻā§āϞāĻŦā§, āĻāĻžāϰāĻŖ <bits/stdc++.h> āĻĻā§āĻāϝāĻŧāĻž program-āĻ āĻāĻāĻž āĻāĻāύ⧠āϞāĻžāĻā§āύāĻŋ (Module 1, lesson 07)āĨ¤
ā§Š. Vector-āĻāϰ size āĻ āĻŋāĻ āĻāϰ⧠āĻĻāĻŋāϝāĻŧā§ āĻāĻŦāĻžāϰ push-āĻ āĻāϰāĻžāĨ¤
int n = 3;
vector<int> marks(n);
for (int i = 0; i < n; i++) {
int x;
cin >> x;
marks.push_back(x);
}
āĻā§āύ⧠āĻŦāĻžāϰā§āϤāĻž āύā§āĻāĨ¤ Input 70 85 62 āĻĻāĻŋāϞ⧠vector-āĻ āĻĨāĻžāĻā§ 0 0 0 70 85 62, size 6āĨ¤ marks(n) āĻāĻā§āĻ āϤāĻŋāύāĻāĻž element āĻŦāĻžāύāĻŋāϝāĻŧā§ āϰā§āĻā§āĻāĻŋāϞ, āĻāϰ push_back āĻāĻĻā§āϰ āĻĒāϰ⧠āĻāϰāĻ āϤāĻŋāύāĻāĻž āĻā§āĻĄāĻŧā§ āĻĻāĻŋāϝāĻŧā§āĻā§āĨ¤ āϝā§āĻā§āύ⧠āĻāĻāĻāĻž āĻŦā§āĻā§ āύāĻžāĻ: vector<int> marks(n)-āĻāϰ āϏāĻžāĻĨā§ cin >> marks[i], āĻ
āĻĨāĻŦāĻž āĻāĻžāϞāĻŋ vector-āĻāϰ āϏāĻžāĻĨā§ push_backāĨ¤ āϤā§āĻŽāĻŋ āĻĻā§āĻā§ āĻŽāĻŋāĻļāĻŋāϝāĻŧā§ āĻĢā§āϞāĻŦā§, āĻāĻžāϰāĻŖ āĻĻā§āĻā§āĻā§āĻ āĻĻā§āĻā§ āĻŽāύ⧠āĻšāϝāĻŧ "n-āĻāĻžāϰ āĻāύā§āϝ āĻāĻžāϝāĻŧāĻāĻž āĻŦāĻžāύāĻžāĻ"āĨ¤
ā§Ē. << āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰ⧠vector print āĻāϰāĻžāĨ¤
vector<int> marks{70, 85};
cout << marks << '\n';
āĻĒā§āϰāϤāĻŋāĻāĻž command line-āĻ error: error: no match for 'operator<<' (operand types are 'std::ostream' {aka 'std::basic_ostream<char>'} and 'std::vector<int>'), āϤāĻžāϰāĻĒāϰ candidate-āĻĻā§āϰ āϞāĻŽā§āĻŦāĻž āĻāĻāĻāĻž āϤāĻžāϞāĻŋāĻāĻžāĨ¤ āĻļā§āϧ⧠āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύāĻāĻž āĻĒāĻĄāĻŧā§: cout āĻāĻžāύ⧠āύāĻž, vector āĻā§āĻāĻžāĻŦā§ print āĻāϰāϤ⧠āĻšāϝāĻŧāĨ¤ Element-āĻā§āϞ⧠āĻāĻāĻāĻž loop āĻĻāĻŋāϝāĻŧā§ print āĻāϰā§āĨ¤ āϤā§āĻŽāĻŋ āĻāĻāĻž āĻā§āώā§āĻāĻž āĻāϰāĻŦā§, āĻāĻžāϰāĻŖ cout āϤ⧠āĻāĻāĻāĻž string āĻĻāĻŋāĻŦā§āϝāĻŋ print āĻāϰā§, āĻāϰ vector-āĻā§āĻ āĻĻā§āĻāϤ⧠āĻāϰā§āĻāĻāĻž container-āĻ āĻŽāύ⧠āĻšāϝāĻŧāĨ¤
āĻāĻžāϤāĻžāĻā§āϞ⧠āϝ⧠āĻā§āϰāĻŽā§ āĻāϏā§āĻāĻŋāϞ, Amara āĻĢā§āϰāϤ āĻĻāĻŋāϤ⧠āĻāĻžāϝāĻŧ āĻ āĻŋāĻ āϤāĻžāϰ āĻāϞā§āĻā§ āĻā§āϰāĻŽā§āĨ¤ Input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āύāĻŽā§āĻŦāϰ āĻĒāĻĄāĻŧā§, āĻāĻāĻāĻž vector-āĻ āϰāĻžāĻā§, āϤāĻžāϰāĻĒāϰ āĻļā§āώāĻāĻž āĻĨā§āĻā§ āĻĒā§āϰāĻĨāĻŽāĻāĻž āĻĒāϰā§āϝāύā§āϤ print āĻāϰā§āĨ¤
Input. āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, space āĻŦāĻž āύāϤā§āύ āϞāĻžāĻāύ āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻāϰāĻž, input āĻļā§āώ āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤
Output. āĻŽāĻžāύāĻā§āϞ⧠āĻāϞā§āĻā§ āĻā§āϰāĻŽā§, āĻāĻ āϞāĻžāĻāύā§, āĻŽāĻžāĻā§ āĻāĻāĻāĻž āĻāϰ⧠spaceāĨ¤
Constraints. 1 āĻĨā§āĻā§ 200000āĻāĻž āĻŽāĻžāύ, āĻĒā§āϰāϤāĻŋāĻāĻž -1000000000 āĻĨā§āĻā§ 1000000000-āĻāϰ āĻŽāϧā§āϝā§āĨ¤
Sample. Input 70 85 62 91 48 āĻĻāĻŋāϞ⧠48 91 62 85 70āĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> marks;
int x;
while (cin >> x) {
marks.push_back(x);
}
// Print the marks from the last element back to the first,
// on one line, separated by single spaces.
return 0;
}
reverse-input āύāĻžāĻŽā§ āĻā§āϰā§āĻĄ āĻšāϝāĻŧ, āĻāĻ module-āĻāϰ problem set-āĻāϰ āĻāĻāĻāĻž free problemāĨ¤ Hidden test-āĻ āĻāĻā§ āĻāĻāĻāĻžāĻŽāĻžāϤā§āϰ āĻŽāĻžāύ, āĻāϰ 200000āĻāĻž āĻŽāĻžāύāĨ¤ āϏā§āĻā§āϞ⧠āϧāϰ⧠āĻĢā§āϞ⧠āĻāĻŽāύ loop, āϝā§āĻāĻž marks[marks.size()] āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāϝāĻŧ, āĻāϰ āĻāĻŽāύ loop, āϝā§āĻāĻž marks[0] āĻĒāϰā§āϝāύā§āϤ āĻĒā§āĻāĻāĻžāϝāĻŧāĻ āύāĻžāĨ¤
Maria n-āĻāĻž āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻž āĻĒāĻĄāĻŧā§, āĻāϰ āĻāĻžāϝāĻŧ āĻāĻĄāĻŧā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋāĻā§āϞā§, input-āĻāϰ āĻā§āϰāĻŽā§āĨ¤ āĻļā§āώ reading āύāĻž āĻāϏāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻĄāĻŧ āĻāĻžāύāĻžāϰ āĻāĻĒāĻžāϝāĻŧ āύā§āĻ, āϤāĻžāĻ āϏāĻŦāĻā§āϞ⧠āĻāĻāĻāĻž vector-āĻ āϰāĻžāĻā§, āĻāϰ āĻāĻāĻžāϰ āĻāĻĒāϰ āĻĻāĻŋāϝāĻŧā§ āĻĻā§āĻāĻŦāĻžāϰ āĻšāĻžāĻāĻā§āĨ¤
Input. āĻāĻ āϞāĻžāĻāύ⧠n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤
Output. āĻāĻ āϞāĻžāĻāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻŽāĻžāύ, āϝā§āĻāĻž āĻāĻĄāĻŧā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ (āĻāĻĄāĻŧā§āϰ āϏāĻŽāĻžāύ āĻšāϞ⧠āĻāϞāĻŦā§ āύāĻž), input-āĻāϰ āĻā§āϰāĻŽā§, āĻŽāĻžāĻā§ āĻāĻāĻāĻž āĻāϰ⧠spaceāĨ¤ āĻāĻāĻāĻžāĻ āĻŦā§āĻļāĻŋ āύāĻž āĻšāϞ⧠print āĻāϰ⧠noneāĨ¤
Constraints. 1 <= n <= 100000āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž -1000000 āĻĨā§āĻā§ 1000000-āĻāϰ āĻŽāϧā§āϝā§āĨ¤
Sample. Input 5 āĻāϰ 30 10 25 40 20 āĻĻāĻŋāϞ⧠30 40āĨ¤ āĻāĻĄāĻŧ 25, āĻāϰ 25 āϤ⧠āύāĻŋāĻā§āϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āύāĻžāĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> temps(n);
for (int i = 0; i < n; i++) {
cin >> temps[i];
}
// Pass 1: add every temperature into a long long.
// Pass 2: print the ones above the average, or "none".
return 0;
}
āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻā§āϰā§āĻĄ āĻšāϝāĻŧ āύāĻžāĨ¤ Hint: temps[i] * n-āĻā§ sum-āĻāϰ āϏāĻžāĻĨā§ āϤā§āϞāύāĻž āĻāϰā§, āĻĻā§āĻā§āĻ long long āĻšāĻŋāϏā§āĻŦā§, āϤāĻžāĻšāϞ⧠āĻā§āύ⧠āĻāĻā§āύāĻžāĻāĻļāĻ āϞāĻžāĻāĻŦā§ āύāĻžāĨ¤ āϏāĻŦ āĻŽāĻžāύ āϏāĻŽāĻžāύ āĻšāϞ⧠print āĻšāĻŦā§ noneāĨ¤
Kenji-āϰ playlist āĻā§āϰ⧠āĻā§āϰ⧠āĻŦāĻžāĻā§āĨ¤ āĻ āĻāĻā§ k āĻĒāĻĄāĻŧā§, āϤāĻžāϰāĻĒāϰ input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻžāύā§āϰ āύāĻŽā§āĻŦāϰāĨ¤ āĻ āĻĻā§āĻāϤ⧠āĻāĻžāϝāĻŧ, index k-āĻāϰ āĻāĻžāύ āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰāϞ⧠āϤāĻžāϞāĻŋāĻāĻžāĻāĻž āĻā§āύ āĻā§āϰāĻŽā§ āĻŦāĻžāĻāĻŦā§āĨ¤ k āϤāĻžāϞāĻŋāĻāĻžāϰ āĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻšāϞ⧠āĻā§āύāĻž āĻāĻŦāĻžāϰ āĻāĻ āĻĒāĻžāĻ āĻā§āϰ⧠āĻāϏā§āĨ¤
Input. k, āϤāĻžāϰāĻĒāϰ input āĻļā§āώ āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻāĻžāύā§āϰ āύāĻŽā§āĻŦāϰāĨ¤
Output. āĻāĻ āϞāĻžāĻāύ⧠āĻāĻžāύāĻā§āϞā§, 0 āĻĨā§āĻā§ āĻā§āύāĻž index k āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰā§, āĻļā§āώ⧠āĻĒā§āĻāĻā§ āĻāĻŦāĻžāϰ āĻļā§āϰā§āϤ⧠āĻĢāĻŋāϰā§, āĻŽāĻžāĻā§ āĻāĻāĻāĻž āĻāϰ⧠spaceāĨ¤
Constraints. 0 <= k <= 1000000000āĨ¤ 1 āĻĨā§āĻā§ 100000āĻāĻž āĻāĻžāύāĨ¤
Sample. Input 7 āĻāϰ 11 12 13 14 15 āĻĻāĻŋāϞ⧠13 14 15 11 12āĨ¤ āĻĒāĻžāĻāĻāĻāĻž āĻāĻžāύā§āϰ āĻŦā§āϤā§āϤ⧠āϏāĻžāϤ āϧāĻžāĻĒ āĻšāĻžāĻāĻāĻž āĻŽāĻžāύ⧠āĻāϏāϞ⧠āĻĻā§āĻ āϧāĻžāĻĒāĨ¤
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long k;
cin >> k;
vector<int> songs;
int s;
while (cin >> s) {
songs.push_back(s);
}
// Print songs.size() songs, starting at index k % songs.size(),
// wrapping back to index 0 after the last one.
return 0;
}
āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āĻā§āϰā§āĻĄ āĻšāϝāĻŧ āύāĻžāĨ¤ Lesson āϝ⧠āĻāĻĨāĻžāĻāĻž āĻļā§āϧ⧠āĻāĻā§āĻāĻŋāϤ⧠āĻŦāϞā§āĻā§: index (k + i) % n āϏāĻŦāϏāĻŽāϝāĻŧ 0 āĻĨā§āĻā§ n - 1-āĻāϰ āĻŽāϧā§āϝā§āĻ āĻĒāĻĄāĻŧā§, āϤāĻžāĻ āĻāĻāύ⧠āĻļā§āώā§āϰ āĻŦāĻžāĻāϰ⧠āĻĒāĻĄāĻŧāĻŦā§ āύāĻžāĨ¤
āϏāĻāϰāĻžāĻāϰ āϝ⧠āĻĒā§āϰāĻļā§āύāĻā§āϞ⧠āĻāϏā§
Vector āĻāĻŋ C array-āĻāϰ āĻā§āϝāĻŧā§ āϧā§āϰ?
v[i]āĻĒāĻĄāĻŧāϤ⧠āĻāϰāĻ array-āĻāϰ āĻāĻāĻāĻž āĻŦāĻžāĻā§āϏ āĻĒāĻĄāĻŧāĻžāϰ āϏāĻŽāĻžāύ: āĻāĻāĻāĻž address āĻšāĻŋāϏāĻžāĻŦ, āĻāϰ āĻāĻāĻāĻž readāĨ¤ āĻŦāĻžāĻĄāĻŧāϤāĻŋ āĻāϰāĻ āĻļā§āϧ⧠āĻŦāĻĄāĻŧ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāϰ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻpush_backāϤ⧠āĻļā§āϧ⧠āĻāĻāĻāĻž āĻĢāĻžāĻāĻāĻž āĻŦāĻžāĻā§āϏ āĻāϰā§āĨ¤ Lesson 05 āĻāĻāĻž āĻŽā§āĻĒā§ āĻĻā§āĻāĻžāĻŦā§āĨ¤malloc-āĻāϰ memory-āϰ āĻŽāϤ⧠vector-āĻā§āĻ āĻāĻŋ āĻāĻŽāĻžāĻā§ free āĻāϰāϤ⧠āĻšāϝāĻŧ?āύāĻžāĨ¤ āϝ⧠block-āĻ vector-āĻāĻž declare āĻāϰāĻž, āϤāĻžāϰ closing brace-āĻ āĻĒā§āĻāĻāĻžāϞā§, āĻŽāĻžāύ⧠vector-āĻāϰ scope āĻļā§āώ āĻšāϞā§, āĻ āύāĻŋāĻā§āϰ memory āύāĻŋāĻā§āĻ free āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ āĻā§āϞ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āĻŽāϤ⧠āĻā§āύā§
freeāύā§āĻ, āĻĻā§āĻāĻŦāĻžāϰ call āĻāϰāĻžāϰ āĻŽāϤā§āĻ āύāĻžāĨ¤Capacity 4 āĻĨā§āĻā§ 5 āύāĻž āĻšāϝāĻŧā§ 8 āĻšāϞ⧠āĻā§āύ?
āĻāĻ āĻāϰ⧠āĻŦāĻžāĻĄāĻŧāĻžāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž
push_back-āĻ āϏāĻŦ element copy āĻāϰāϤ⧠āĻšāϤā§āĨ¤ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻāϰāϞ⧠copy āĻā§āĻŦ āĻāĻŽāĻ āϞāĻžāĻā§, āϤāĻžāĻ āĻāĻĄāĻŧ āĻāϰāĻ constant āĻĨāĻžāĻā§āĨ¤ āĻāϤ āĻā§āĻŖ āĻŦāĻžāĻĄāĻŧāĻŦā§, standard āϏā§āĻāĻž āĻŦāϞ⧠āύāĻž; GCC-āϰ library 2 āĻā§āĻŖ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧ, āĻāĻĒāϰā§āϰ program āϝā§āĻŽāύ print āĻāϰā§āĻā§āĨ¤Vector āĻāĻŋ string āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āĻŦāĻž āĻ āύā§āϝ vector?
āĻĒāĻžāϰā§āĨ¤
vector<string>āϰāĻžāĻā§ āĻļāĻŦā§āĻĻ, āĻāϰvector<vector<int>>āϰāĻžāĻā§ āϏāĻāĻā§āϝāĻžāϰ āĻāϝāĻŧā§āĻāĻāĻž āϏāĻžāϰāĻŋāĨ¤ Lesson 03 āĻ āĻŋāĻ āĻāĻāĻžāĻŦā§āĻ āĻāĻāĻāĻž grid āĻŦāĻžāύāĻžāĻŦā§āĨ¤
āĻŽā§āϞ āĻāĻĨāĻž
- Vector āĻšāϞ⧠āĻāĻāĻ type-āĻāϰ element-āĻāϰ āĻāĻ āϏāĻžāϰāĻŋ, āĻāĻāĻāĻžāĻ block-āĻ, āĻāϰ
push_backāĻāĻāĻžāĻā§ āĻŦāĻĄāĻŧ āĻāϰā§, āϤāĻžāĻ āĻā§āύāϤāĻŋ āĻāĻā§ āĻĨā§āĻā§ āĻāĻžāύāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤ - āĻā§āϞ bracket āĻĻā§āϝāĻŧ āĻā§āύāϤāĻŋ (
v(5)āĻŽāĻžāύ⧠āĻĒāĻžāĻāĻāĻāĻž 0), braces āĻĻā§āϝāĻŧ āϤāĻžāϞāĻŋāĻāĻž (v{5}āĻŽāĻžāύ⧠āĻāĻāĻāĻžāĻ 5)āĨ¤ - Size āĻšāϞ⧠āĻāϝāĻŧāĻāĻž āĻāĻā§, capacity āĻšāϞ⧠āĻāϤāĻāĻž āĻāĻžāϝāĻŧāĻāĻž āĻāĻā§; block āĻāϰ⧠āĻā§āϞ⧠āĻšāϝāĻŧ reallocation, āĻāϰ āϤāĻžāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻž element copy āĻšāϝāĻŧāĨ¤
- Index āĻāϞ⧠0 āĻĨā§āĻā§
v.size() - 1, āĻāϰv[i]āĻāĻŋāĻā§āĻ check āĻāϰ⧠āύāĻž, āϤāĻžāĻv[v.size()]āĻāĻāĻāĻž āύā§āϰāĻŦ bugāĨ¤ size()unsigned: āĻāĻžāϞāĻŋ vector-āĻv.size() - 1āĻšāϞ⧠18446744073709551615, āϤāĻžāĻ āĻāĻā§empty()check āĻāϰā§āĨ¤- āĻāϰāĻ āĻāĻā§āϰ⧠āϝā§āϤ⧠āĻāĻžāĻāϞā§: Under the Hood, vector āĻā§āĻāĻžāĻŦā§ āĻŦāĻĄāĻŧ āĻšāϝāĻŧ āĻāϰ āϤāĻžāϤ⧠āĻā§ āĻā§ āĻāĻžāĻā§ (Pro)āĨ¤
āĻāϰāĻĒāϰ Kenji-āϰ program āĻāĻāĻāĻž loop-āĻ āĻŦāĻžāϰāĻŦāĻžāϰ vector-āĻāϰ āϏāĻžāĻŽāύ⧠insert āĻāϰā§, āĻāϰ āĻā§āĻŦ āϧā§āϰ⧠āĻāϞā§āĨ¤ āĻā§āύ, āϏā§āĻāĻž āĻŦā§āϰ āĻāϰāϤ⧠lesson 02 āĻĒā§āϰāϤāĻŋāĻāĻž operation-āĻāϰ āĻāϰāĻ āĻŽā§āĻĒā§ āĻĻā§āĻāĻŦā§āĨ¤
lesson ā§§ āĻļā§āώ
āĻļā§āώ āĻšāϞ⧠āĻāĻŋāĻšā§āύ āĻĻāĻŋāύ, āĻ āĻā§āϰāĻāϤāĻŋ āĻāĻĒāύāĻžāϰ āϏāĻžāĻĨā§ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĒāϰā§āϰāĻāĻž: vector-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž operation, āĻāĻāĻāĻž āĻāĻāĻāĻž āĻāϰā§, āĻāϰāĻāϏāĻš