c++ - 访问动态创建的向量的元素
问题描述
vector <int> * v = new vector <int>;
v -> push_back (1);
cout << v[0]<< endl; // error
为什么我不能访问第一个元素?我收到这个错误
错误:'operator<<' 不匹配(操作数类型是 'std::ostream {aka std::basic_ostream}' 和 'std::vector')|
解决方案
你为什么要分配一个vector
with new
?使用向量的主要目的是避免必须使用新的。
vector<int> v;
v.push_back(1);
cout << v[0] << endl;
如果出于某种奇怪的原因您决定确实必须使用指针,那么您可以这样做
vector<int>* v = new vector<int>;
v->push_back(1);
cout << (*v)[0] << endl;
但实际上,分配一个向量并new
没有什么意义。
也许您在尝试 C++ 之前是一名 Java 程序员?如果是这样,那么不要尝试以 Java 风格编写 C++,它们是非常不同的语言。如果你这样做,你会陷入可怕的混乱。
推荐阅读
- javascript - 通过数组搜索没有结果
- java - JSF 2.2 不呈现或从 javaBean 获取内容
- facebook-graph-api - Facebook 流图实时评论部分有效
- ruby - HTTParty 在 MailChimp 3.0 API 上批量更新用户
- angular - 如何从搜索结果中选择单击的元素并删除 angular4 中的兄弟姐妹
- go - 修复 Go 中的错误连接
- html - 旋转/方向更改后 wkwebview 中的字体大小
- jquery - 获取数据表中的嵌套表行数据
- python - 使用没有类型注释的 mypy 检测类型错误
- php - Angularjs .success{} 与 php 生成的图像