Asi*_*taq -1 c++ pointers vector
我正在努力与矢量.这是我的两个例子.
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myvector (5);
int* p = myvector.data(); // 0 index address
*p = 10; // index 0 = 10;
++p; // index 0 to 1
*p = 20; // index 1= 20
p[2] = 100; // index 2 = 100
++p; // as p was in index 1. then ++ goes to index 2.
*p=49; // index 2 = 49,, and 100 goes on index up
std::cout << "myvector contains:";
for (int i=0; i<myvector.size(); i++)
std::cout << ' ' << myvector[i];
std::cout << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:(正如我在每个陈述中解释的那样)
10 20 49 100 0
Run Code Online (Sandbox Code Playgroud)
但是当我评论/删除++p&*p=49;然后为什么100仍然在向量中的3个索引?这是令我困惑的例子.
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myvector (5);
int* p = myvector.data();
*p = 10; // index 0=10;
++p; // index 0 to 1
*p = 20; // index 1 = 20
p[2] = 100; // index 2 = 100
std::cout << "myvector contains:";
for (int i=0; i<myvector.size(); i++)
std::cout << ' ' << myvector[i];
std::cout << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
10 20 0 100 0
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释第二输出吗?
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |