先看一段代码
vector<int> the_vector; vector<int>::iterator the_iterator; for( int i=0; i < 10; i++ ) the_vector.push_back(i); int total = 0; the_iterator = the_vector.begin(); while( the_iterator != the_vector.end() ) { total += *the_iterator; the_iterator++; } cout << "Total=" << total << endl;
看一下这行代码
vector<int>::iterator the_iterator;
::这个符号在java,c中都就没见过,原来这个符号是表示作用域。
比如这行代码就是迭代器the_iterator是定义在vector<int>上的,为下面的the_iterator = the_vector.begin()做铺垫。
如果这句话是vector<double> d_vector; the_iterator = d_vector.begin();就会出错。
还有std:out就是说调用的是命名空间std中的out,因为有可能用户会自定义与out同名的函数,这样制定范围就不会混淆。