Ali*_*maz -5 c++ vector stdvector
请考虑以下代码:
#include <vector>
#include <iostream>
void monitor_vector(std::vector<int> myV)
{
std::vector<int>::iterator it = myV.begin();
std::cout << "Vector size: " << myV.size() << std::endl;
while (*it)
{
std::cout << "Element " << it-myV.begin() << ": " << *it << std::endl;
it++;
}
}
int main()
{
std::vector<int> myVector(4,1);
monitor_vector(myVector);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
基本上,我创建了一个std::vector<int>包含4元素的元素,并分配每个元素1.当我执行这段代码时,一切都很好.输出显示每个元素.
但是,当我用这一行执行它时
std::vector<int> myVector(4,1);
Run Code Online (Sandbox Code Playgroud)
替换为此行:
std::vector<int> myVector(4,0);
Run Code Online (Sandbox Code Playgroud)
我看不到任何输出.输出是:
yilmazali@yilmazali:~/cpp_practice$ g++ -o la vector_practice.cpp
yilmazali@yilmazali:~/cpp_practice$ ./la
Vector size: 4
yilmazali@yilmazali:~/cpp_practice$
Run Code Online (Sandbox Code Playgroud)
为什么忽略具有默认整数值的元素?他们仍然是那里的成员std::vector.
谢谢你的时间,阿里
你迭代while (*it).
如果用零填充向量,*it == 0因此if (*it)就像if (false):循环体永远不会被执行.
相反,循环而 it != myV.end()