c++ - 空 vector 允许推回其自身的第一个元素

标签 c++

我的一位 friend 展示了一个非常简单的例子:

#include <vector>

int main()
{
    vector<int> v;
    v.push_back( v[0] );

    return 0;
}

它可以编译,没有任何警告。模板的问题应该在编译时检测到。您对这种奇怪行为有何解释?

最佳答案

对我来说这似乎是一个运行时问题而不是编译时问题。编译器如何知道 vector 如何运行?

关于c++ - 空 vector 允许推回其自身的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465759/

相关文章:

c++ - 分配和检索的括号过载;常量,引用

php - 管道标准输出到浏览器

c++ - 将大于 long 类型最大值的值传递给 C 中的 fseek

没有变量的c++派生类

c++ - 如何使用 C++ MFC 为 Windows CE 设备显示设备键盘?

c++ - 乘以存储在一维数组算法中的上三角矩阵

android - Cocos2d-x 与 Visual Studio 2015 跨平台工具

c# - 从 C# 线程调用非托管代码

c++ - C++中这个语法是什么意思?

java - 如何在 Java 中使用等效于 C++ 的引用参数?