What's the difference between this two function?
double &operator[](size_t i) { return features_[i]; }
double operator[](size_t i) const { return features_[i]; }
1, the first one allows to modify the features_[i] but the second not?
2, which operator will be chosen when I write Mytype[i] = 0 and double x = Mytype[i]?
 
    