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
将不会指向有效内存)。不鼓励使用原始指针是有原因的……嗯,我从未使用过向量,你能举个例子吗?我需要经常修改代码吗?嗯,我从来没有使用过向量,你能举个例子吗?我需要经常修改代码吗?嗯,我从来没有使用过向量,你能举个例子吗?我需要经常修改代码吗?嗯,我从来没有使用过向量,你能举个例子吗?我需要经常修改代码吗?