我想将push_back一个字符放入向量中并打印,但是我不知道为什么它没有被打印。
我不知道该怎么办,因为程序正在编译并返回0。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<char> A(4);
char d = 's';
A.push_back(d);
// for(int i=0;i<3;i++)
{ cout << "first element is" << A[0]; }
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我进入CodeBlocks IDE的输出:
first element is
Process returned 0 (0x0) execution time : 0.444 s
Run Code Online (Sandbox Code Playgroud)
小智 5
您实施的问题在于
向量A(4);
和
A.push_back(d);
线。
构造默认大小为4的向量时,这意味着已经分配了A [0]至A [3]索引。接下来,当您执行push_back()时,将元素推入下一个可能的索引中,在本例中为4。
因此,A.push_back(d); ->它所做的只是分配A [4],然后分配A [4] ='s';
只需打印A [4],就可以看到它。