解决方法:不支持插入复合类型的数组类型的问题可以通过以下两种方法来解决。
#include
#include
struct MyStruct {
int a;
int b;
};
int main() {
std::vector myVector;
MyStruct myElement;
myElement.a = 1;
myElement.b = 2;
myVector.push_back(myElement);
for (const auto& element : myVector) {
std::cout << "a: " << element.a << ", b: " << element.b << std::endl;
}
return 0;
}
#include
struct MyStruct {
int a;
int b;
};
int main() {
MyStruct* myArray[10];
MyStruct* myElement = new MyStruct;
myElement->a = 1;
myElement->b = 2;
myArray[0] = myElement;
for (int i = 0; i < 1; i++) {
std::cout << "a: " << myArray[i]->a << ", b: " << myArray[i]->b << std::endl;
}
delete myElement;
return 0;
}
这里使用了指向MyStruct类型的指针数组myArray,并使用new运算符动态分配了一个MyStruct对象,并将其地址保存在myArray[0]中。在访问myArray[0]时,需要使用箭头运算符(->)来访问对象的成员。
需要注意的是,在使用指针数组时,需要手动管理内存,确保在不再需要使用元素时进行正确的释放。