我想知道如何去创建一个重载的括号运算符,它会提供std :: list中的元素位置。std :: list的重载括号运算符
班里列表声明如下:
std::list<Stimulation*> configuration;
重载括号运算符声明:
std::list<Stimulation*>::operator[](const int);
我会的数字,括号运算符的确定指标会去如下:
std::list<Stimulation*>::operator[](const int position)
{
auto i = configuration.begin();
return i + position;
***OR***
std::list<Stimulation*>::iterator i = configuration.begin();
return i + position;
}
我是新来的这个概念,所以任何帮助将是欣赏这样做的适当方式。我需要在这种情况下专门使用一个列表,因为我知道其他容器包含括号操作符作为库的一部分。再次感谢您的耐心和时间。
有一个原因,为什么没有'列表'的括号操作符。这是因为需要从元素到元素,所以O(n)访问。你必须循环使用'for',计算你迭代的元素数量。 –
你不能那样做。 –
雅我读了,但我得到的这个规范是要求,所以我不知道什么是确切的。 –