C++ 用更大的数组覆盖数组
我的程序中有一个全局数组,我希望能够在一开始使用函数至少更改一次它的大小。基本上是这样的:C++ 用更大的数组覆盖数组,c++,arrays,C++,Arrays,我的程序中有一个全局数组,我希望能够在一开始使用函数至少更改一次它的大小。基本上是这样的: pthread_t threadsArray[10]; //default size: 10 void SetMaxThreads(unsigned int count) { pthread_t threadsArray[count]; } 你建议我做什么?如何实现这一点?我建议使用标准容器std::vector而不是数组 比如说 std::vector<pthread_t> th
pthread_t threadsArray[10]; //default size: 10
void SetMaxThreads(unsigned int count) {
pthread_t threadsArray[count];
}
你建议我做什么?如何实现这一点?我建议使用标准容器
std::vector
而不是数组
比如说
std::vector<pthread_t> threadsArray( 10 ); //default size: 10
void SetMaxThreads(unsigned int count) {
threadsArray.resize( count );
}
std::vector threadsArray(10)//默认大小:10
void SetMaxThreads(无符号整数计数){
threadsArray.resize(计数);
}
我建议使用标准容器std::vector
而不是数组
比如说
std::vector<pthread_t> threadsArray( 10 ); //default size: 10
void SetMaxThreads(unsigned int count) {
threadsArray.resize( count );
}
std::vector threadsArray(10)//默认大小:10
void SetMaxThreads(无符号整数计数){
threadsArray.resize(计数);
}
我建议使用标准容器std::vector
而不是数组
比如说
std::vector<pthread_t> threadsArray( 10 ); //default size: 10
void SetMaxThreads(unsigned int count) {
threadsArray.resize( count );
}
std::vector threadsArray(10)//默认大小:10
void SetMaxThreads(无符号整数计数){
threadsArray.resize(计数);
}
我建议使用标准容器std::vector
而不是数组
比如说
std::vector<pthread_t> threadsArray( 10 ); //default size: 10
void SetMaxThreads(unsigned int count) {
threadsArray.resize( count );
}
std::vector threadsArray(10)//默认大小:10
void SetMaxThreads(无符号整数计数){
threadsArray.resize(计数);
}
您可以声明一个动态数组。这可以通过两种不同的方式实现。您可以使用std::vector
,也可以使用指针。。使用指针的示例:
pthread_t *threadsArray; // no default size
void SetMaxThreads(unsigned int count) {
delete [] threadsArray;
threadsArray = new pthread_t[count];
}
编辑:正如一些评论所指出的,使用
std::unique\u ptr
而不是数组指针更安全。您可以声明动态数组。这可以通过两种不同的方式实现。您可以使用std::vector
,也可以使用指针。。使用指针的示例:
pthread_t *threadsArray; // no default size
void SetMaxThreads(unsigned int count) {
delete [] threadsArray;
threadsArray = new pthread_t[count];
}
编辑:正如一些评论所指出的,使用
std::unique\u ptr
而不是数组指针更安全。您可以声明动态数组。这可以通过两种不同的方式实现。您可以使用std::vector
,也可以使用指针。。使用指针的示例:
pthread_t *threadsArray; // no default size
void SetMaxThreads(unsigned int count) {
delete [] threadsArray;
threadsArray = new pthread_t[count];
}
编辑:正如一些评论所指出的,使用
std::unique\u ptr
而不是数组指针更安全。您可以声明动态数组。这可以通过两种不同的方式实现。您可以使用std::vector
,也可以使用指针。。使用指针的示例:
pthread_t *threadsArray; // no default size
void SetMaxThreads(unsigned int count) {
delete [] threadsArray;
threadsArray = new pthread_t[count];
}
Edit:正如一些评论所指出的,使用
std::unique\u ptr
而不是数组指针更安全。std::unique\u ptr
比原始拥有指针更好。这不是异常安全的(如果new
抛出,threadsArray
将不会指向有效内存)。不鼓励使用原始指针是有原因的…std::unique_ptr
比原始拥有指针要好。这不是异常安全的(如果new
抛出,threadsArray
将不会指向有效内存)。不鼓励使用原始指针是有原因的…std::unique_ptr
比原始拥有指针要好。这不是异常安全的(如果new
抛出,threadsArray
将不会指向有效内存)。不鼓励使用原始指针是有原因的…std::unique_ptr
比原始拥有指针要好。这不是异常安全的(如果new
抛出,threadsArray
将不会指向有效内存)。不鼓励使用原始指针是有原因的……嗯,我从未使用过向量,你能举个例子吗?我需要经常修改代码吗?嗯,我从来没有使用过向量,你能举个例子吗?我需要经常修改代码吗?嗯,我从来没有使用过向量,你能举个例子吗?我需要经常修改代码吗?嗯,我从来没有使用过向量,你能举个例子吗?我需要经常修改代码吗?