std::vector<int> int_vec;
int_vec.push_back(1);
int_vec.push_back(2);
//如果要修改int_vec中的元素,将变量x声明为 int& 即可
for (int x: int_vec)
{
std::cout << x << endl;
}
{
auto && __range = range_expression ;
for (auto __begin = begin_expr,
__end = end_expr;
__begin != __end; ++__begin) {
range_declaration = *__begin;
loop_statement
}
}
class FakeIter
{
typedef long _VType; //数值的类型为long。当然了,也可以写个模板出来
public:
explicit FakeIter(_VType val)
:value_(val){}
bool operator != (const FakeIter& other) const
{
return (this->GetValue()) != (other.GetValue());
}
_VType operator* () const
{
return GetValue();
}
const FakeIter& operator++ ()
{
++value_;
return *this;
}
private:
_VType GetValue() const
{
return value_;
}
_VType value_;
};
class Range
{
typedef long _VType; //同样,也可以弄个模板出来,但是就不方便用了
public:
Range (_VType begin_v, _VType end_v)
:begin_value_(begin_v), end_value_(end_v)
{
cout<<"Range::Range()"<<endl;
}
~Range()
{
cout<<"Range::~Range()"<<endl;
}
FakeIter begin () const
{
cout<<"Range::begin()"<<endl;
return FakeIter(begin_value_);
}
FakeIter end () const
{
cout<<"Range::end()"<<endl;
return FakeIter(end_value_ );
}
private:
_VType begin_value_;
_VType end_value_;
};
for (auto x: Range(1,5))
{
std::cout<<x<<endl;
}
std::cout<<"Loop end"<<endl;
Range::Range() Range::begin() Range::end() 1 2 3 4 Range::~Range() Loop end
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有