Почему я не могу создать вектор c строковым временем. Когда я создаю его, мой компилятор создает проблему с памятью.
#include <iostream> #include <vector> using namespace std; int main() { vector<char[32]> buffVector; return 0; }
С https://en.cppreference.com/w/cpp/container/vector:
T должно соответствовать требованиям CopyAssignable и CopyConstructible .
T
Причина, по которой вы не можете использовать vector<char[32]>, заключается в том, что char[32] не является ни CopyAssignable , ни CopyConstructible .
vector<char[32]>
char[32]
Вы можетеНе используйте:
char a[32]; char b[32]; a = b; // Can't assign an array to another. char c[32] = b; // Can't initialize an array using another.
К счастью, есть легкий обходной путь.Вы можете обернуть массив в struct и использовать вместо него vector из struct.
struct
vector
struct foo { char array[32]; }; std::vector<foo> v; // OK.