no matching funcion for call to 'push_back(int&)
时间: 2024-03-04 21:49:02 浏览: 212
no matching function for call to function (解决方案).md
这个错误的原因可能是你试图将一个 `int&` 类型的变量插入到一个容器的末尾,但是容器的 `push_back` 函数需要的是一个 `const T&` 或者 `T&&` 类型的参数,其中 `T` 是容器存储的元素类型。因此,你需要将 `int&` 类型的变量转换为容器存储的元素类型。
如果容器存储的是 `int` 类型,你可以使用 `push_back` 函数的拷贝构造函数将 `int&` 类型的变量转换为 `int` 类型,并插入到容器的末尾:
```cpp
int num = 10;
std::vector<int> vec;
vec.push_back(num); // 将 num 的值拷贝到容器的末尾
```
如果容器存储的是指向 `int` 类型的指针,你可以使用 `push_back` 函数的地址运算符,将 `int&` 类型的变量的地址插入到容器的末尾:
```cpp
int num = 10;
std::vector<int*> vec;
vec.push_back(&num); // 将 num 的地址插入到容器的末尾
```
阅读全文