使用指针时,C 显示向量
C++ Displaying a Vector when using a pointer
#include <iostream>
#include <vector>
int main()
{
unsigned int numVec;
unsigned int input;
std::cout << "Enter Number of Vectors: ";
std::cin >> numVec;
std::vector<int>* Vec;
for (unsigned int i = 0; i < numVec; i++)
{
std::cout << "Enter Vector Value " << i << ": ";
std::cin >> input;
Vec->push_back(input);
}
std::cout << std::endl;
for (unsigned int i = 0; i < Vec->size(); i++)
{
std::cout << "Value at Index (" << i << ") " << Vec->at(i) << std::endl;
}
std::cout << std::endl;
return 0;
}
我正在尝试学习媒介的工作方式,因为这是一个主题,我一直坚持很长时间以来就没有出于理由。
我的上面代码将编译并运行,但是一旦我将一个数字存储在向量中,它将崩溃。
我只是在不使用指针的情况下使用矢量之前就可以使用该程序,但仅出于学习原因,我想尝试使用指针,我只是想知道我在此代码上做错了什么,如果某人可能会火焰我做某事或在这种情况下我做错了什么,所以我可以学习以后的参考。
替换
std::vector<int>* Vec;
std::vector<int> vec;
并用成员选择操作员.
。
->
仅在极少数情况下,您才需要为std::vector
实例使用动态存储,因为该类在为您管理内存方面做得很好。当前,您不是在为矢量分配任何内存,并且代码的行为是 undfined 。
如果您必须使用指针,则写
std::vector<int>* vec = new std::vector();
并且完成后不要忘记致电delete vec;
。考虑使用std::unique_ptr
&amp; c。因此delete
自动照顾。
我的上面代码将编译并运行,但是一旦我将一个数字存储在向量中,它将崩溃。
什么向量?
您从未创建向量。
您只创建了一个指针,一个(a(是非初始化的,并且(b(没有指向任何东西,更不用说A(c(向量。
相关文章:
- 代码使用向量成功运行,但使用数组显示错误
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- 使用指针时,C 显示向量
- 使用 C++ 中的向量在新行上显示文本文件中的列
- 根据标准对结构向量进行排序,然后显示结果
- 堆栈在函数中弹出仍然显示在主函数中。调用不应该通过引用给定的向量吗
- 在列中显示Deques的向量
- fn 指针的向量没有显示正确的大小()
- Valgrind 显示无效的读/写错误,但我不使用 new 或 calloc,只使用向量和固定数组
- 如何以某种格式为用户显示对象向量
- 如何将结构指针插入stl向量中并显示内容
- 删除列表向量中的元素并显示当前列表
- C 通过使用复制显示对向量
- 初始化和显示整数向量时出现意外结果
- 你如何制作一个显示 24、60 和 1 的向量
- 循环并通过图像向量显示
- 显示向量 (C++) 时出现运行时错误
- 显示向量的内容,其中显示for循环一值
- 在使用向量和排序输入值期间不显示输出
- 在c++中显示向量矩阵的所有值