我是C++新手,假设我有以下代码:
vector<int> vec; vec.push_back(5); int x = vec.at(0);
根据我的理解,x现在表示对向量中的值的引用,如果是这样,那么为什么如果我有x = 7,向量中的值仍然是5?我试着在网站上搜索相关的帖子,但没有看到任何回答这个问题的帖子。
x
x = 7
kpbwa7wx1#
int x声明了一个整数。它不是一个引用。在你的代码中,向量中的值被复制了一份。如果你想要一个引用,那么你需要声明x作为对int的引用:
int x
int
#include <iostream> #include <vector> int main() { std::vector<int> v{42}; int& x = v.at(0); x = 5; std::cout << v.at(0); }
为了进一步阅读,我建议您选择一个book和cppreference可以非常推荐https://en.cppreference.com/w/cpp/language/reference。
1条答案
按热度按时间kpbwa7wx1#
int x
声明了一个整数。它不是一个引用。在你的代码中,向量中的值被复制了一份。如果你想要一个引用,那么你需要声明
x
作为对int
的引用:为了进一步阅读,我建议您选择一个book和cppreference可以非常推荐https://en.cppreference.com/w/cpp/language/reference。