c++ vector.push_back错误:请求成员'push_back'...,它是非类类型'vector(char, allocator(char)) ()()'
我将 Cygwin 与 GCC 结合使用,最终我想将字符文件读入字符向量,并且使用此代码
#include <fstream>
#include <vector>
#include <stdlib.h>
using namespace std;
int main (int argc, char *argv[] )
{
vector<char> string1();
string1.push_back('a');
return 0;
}
会生成以下编译时错误:
main.cpp:在函数
int main(int, char**)': main.cpp:46: 错误:请求 对于
std::vector > ()()'string1' 中的成员
push_back', 这是非 -类类型
我也用整数和字符串向量尝试过这个,他们也有同样的问题。
I'm using Cygwin with GCC, and ultimately I want to read in a file of characters into a vector of characters, and using this code
#include <fstream>
#include <vector>
#include <stdlib.h>
using namespace std;
int main (int argc, char *argv[] )
{
vector<char> string1();
string1.push_back('a');
return 0;
}
generates this compile time error:
main.cpp: In function
int main(int,
push_back' in
char**)': main.cpp:46: error: request
for memberstring1',
std::vector > ()()'
which is of non
-class type
I tried this with a vector of ints and strings as well and they had the same problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用括号来调用默认构造函数:
否则,这将声明一个不带参数并返回
vector
的函数string1
。Don't use parentheses to invoke the default constructor:
Otherwise this declares a function
string1
that takes no argumentes and returns avector<char>
.删除向量声明中的括号 - 它们会使其成为函数声明而不是向量声明。
Remove the parens in the declaration of the
vector
- they cause it to be a function declaration and not a vector declaration.