ip
std::vector<int> v1 {1, 3, 5, 7, 9};
std::cout << &v1[2] << '\n';
v1.erase(v1.begin() + 1, v1.begin() + 2);
std::cout << &v1[2] << '\n';
А почему тогда адресса не меняются здесь в &v1[2]Size: a a a
ip
std::vector<int> v1 {1, 3, 5, 7, 9};
std::cout << &v1[2] << '\n';
v1.erase(v1.begin() + 1, v1.begin() + 2);
std::cout << &v1[2] << '\n';
А почему тогда адресса не меняются здесь в &v1[2]ip
AS
// C++на заре С++ Страуструп транслировал это в С в своем CFront:
struct foo {
int d;
void boo(int a);
};
struct foo {так вот, this - неявный параметр метода, который содержит указатель на объект, в контексте которого он вызывается
int d;
};
void boo(struct foo* this, int a) {
}
LA
ip
ip
VD
std::vector<int> v1 {1, 3, 5, 7, 9};
std::cout << &v1[2] << '\n';
v1.erase(v1.begin() + 1, v1.begin() + 2);
std::cout << &v1[2] << '\n';
А почему тогда адресса не меняются здесь в &v1[2]ip
VS
std::vector<int> v1 {1, 3, 5, 7, 9};
std::cout << &v1[2] << '\n';
v1.erase(v1.begin() + 1, v1.begin() + 2);
std::cout << &v1[2] << '\n';
А почему тогда адресса не меняются здесь в &v1[2]VD
VS
LA
VS
VD
v1[2] == *(&v1[0] + 2)
ip
ip
VS
ip
AK
VS