正在将char[]添加到向量中



尝试向vector:添加值

std::vector<char[256] > readers;
char d[256];
strcpy(d, "AAA");
readers.push_back(d);

收到错误:

an array cannot be initialized with a parenthesized initializer 

我做错了什么?

C样式数组是不可赋值的,因此它不能用作向量的值类型。

如果您至少使用C++11,则可以使用#include <array>std::array。(以前在Visual C++2008 SP1中作为std::tr1::array提供(。

#include <iostream>
#include <array>
#include <vector>
#include <cstring>

int main()
{
std::vector< std::array<char, 256>> readers;
std::array<char,256> d;
strcpy(d.data(), "AAA");
readers.push_back(d);
}

您可以使用std::array而不是过时的原始数组

像这样:

#include <iostream>
#include <array>
#include <vector>
#include <cstring>

int main( )
{
std::vector< std::array<char, 256> > readers;
std::array<char, 256> d { "AAA" };
// strcpy( d.data( ), "AAA" ); not required
readers.push_back( d );
std::cout << readers[0].data( ) << 'n';
}

最新更新