no member named 'push' in 'std::vector<int, std::allocator<int>>' temp.push(i)
时间: 2023-08-31 12:39:01 浏览: 472
自定义STL std :: allocator替换可提高性能
### 回答1:
这个错误提示表明在一个 `std::vector<int>` 对象上调用了 `push` 函数,但是该函数不存在。`std::vector` 类型是一个动态数组,它提供了一系列成员函数来操作数组元素。正确的函数名是 `push_back`,它可以在数组的尾部插入一个新元素。所以你需要将代码中的 `push` 替换为 `push_back`,这样就可以解决这个问题了。例如:
```cpp
std::vector<int> temp;
for (int i = 0; i < 10; ++i) {
temp.push_back(i);
}
```
### 回答2:
错误提示说明在std::vector<int, std::allocator<int>>中没有名为'push'的成员函数。
std::vector是C++标准库中的一个容器类模板,用于存储和管理一组对象。它提供了一系列的成员函数和操作符,以便于操作和访问其元素。
根据错误提示,'push'并不是std::vector的成员函数,因此不能直接使用temp.push(i)。正确的做法是使用push_back成员函数,将元素添加到vector中。
std::vector<int, std::allocator<int>> temp;
for(int i=0; i<10; i++){
temp.push_back(i);
}
上述代码创建了一个空的std::vector对象temp,然后使用循环将数字0到9添加到vector中。在每次迭代中,将当前的数字通过push_back函数添加到vector的尾部。
通过使用push_back成员函数,我们可以实现将元素添加到vector中,而不是使用错误的push函数。这样就能避免"No member named 'push' in 'std::vector<int, std::allocator<int>>'"错误的出现。
### 回答3:
在标准库的vector模板类`std::vector<int, std::allocator<int>>`中不存在名为'push'的成员函数。因此,在调用`temp.push(i)`语句时会出现编译错误。
要向vector中添加元素,可以使用`push_back`成员函数。`push_back`函数是vector的一个成员函数,用于在vector的末尾添加一个新的元素。下面是使用`push_back`函数来向vector中添加元素的示例代码:
```cpp
#include <vector>
int main() {
std::vector<int> temp; // 创建一个空的vector
for (int i = 0; i < 10; ++i) {
temp.push_back(i); // 向vector的末尾添加元素
}
return 0;
}
```
上述代码使用for循环向vector中添加了0到9共10个整数元素。每次循环时,使用`push_back`函数将`i`的值添加到vector的末尾。
通过这种方式,你可以将`temp.push(i)`替换为`temp.push_back(i)`,以在vector中添加元素。
阅读全文