c++ vector.push_back错误:请求成员'push_back'...,它是非类类型'vector(char, allocator(char)) ()()'

发布于 2024-08-31 11:46:51 字数 532 浏览 3 评论 0原文

我将 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: 错误:请求 对于 string1' 中的成员push_back', 这是非 -类类型std::vector > ()()'

我也用整数和字符串向量尝试过这个,他们也有同样的问题。

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,
char**)': main.cpp:46: error: request
for member
push_back' in string1',
which is of non
-class type
std::vector > ()()'

I tried this with a vector of ints and strings as well and they had the same problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤千羽 2024-09-07 11:46:51

不要使用括号来调用默认构造函数:

vector<char> string1;

否则,这将声明一个不带参数并返回 vector 的函数 string1

Don't use parentheses to invoke the default constructor:

vector<char> string1;

Otherwise this declares a function string1 that takes no argumentes and returns a vector<char>.

紫罗兰の梦幻 2024-09-07 11:46:51

删除向量声明中的括号 - 它们会使其成为函数声明而不是向量声明。

Remove the parens in the declaration of the vector - they cause it to be a function declaration and not a vector declaration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文