我的问题是在下面的代码注释中。
void printVec(std::vector<int> *myVec) {
// How to do such looping not to dereference pointer
for (int i = 0; i < myVec->size(); i++) {
std::cout << myVec->[i] << " ";
}
}
Run Code Online (Sandbox Code Playgroud)
你可以
通过const引用传递参数:
void printVec(const std::vector<int>& vec) {
for (const auto& value : vec)
..
}
Run Code Online (Sandbox Code Playgroud)
使用迭代器:
void printVec(td::vector<int>* vec) {
for (auto it = vec->begin(); it != vec->end(); ++it)
..
}
Run Code Online (Sandbox Code Playgroud)
使用at(绑定检查的性能成本):
vec->at(i);
Run Code Online (Sandbox Code Playgroud)
operator[]直接调用:
vec->operator[](i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7609 次 |
| 最近记录: |