小编CLe*_*ner的帖子

我们如何在C++的类构造函数中初始化std :: vector?

我们如何在c ++中的类构造函数中初始化std :: vector?

class MyClass
{
public:
    MyClass( int p_Var1, int* p_Vector ) : Var1( p_Var1 ) //, Initialize std::vector - MyVector with p_Vector
    {
    };
    ~MyClass( void );
private:
    int Var1;
    std::vector< int > MyVector;
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor stdvector

7
推荐指数
1
解决办法
2万
查看次数

C++扫描unsigned char数组和unsigned char向量中某些元素的最快方法是什么?

我有一个小问题,在LARGE unsigned char数组中扫描某些元素的最快方法是什么,以及只包含unsigned char元素的向量?直接答案会很棒,但深入详细的答案会很棒.快速是什么意思?基本上,要在至少一秒内搜索某些字符.我知道这不是一个受过良好教育的定义......

注意:数组未排序.

共同宣言:

unsigned char* Array = new unsigned char[ 50000 ];
std::vector< unsigned char > Vec( 50000 );
/*
 * Fill Array & Vec with random bytes
 */
Run Code Online (Sandbox Code Playgroud)

可以说,我想在Array中搜索字母'a',我只想编写这个循环来搜索它:

注意:搜索过程将搜索多个元素.主要是256.因此,你可以利用这个神奇的数字.

对于循环方法:

unsigned int Count = 0;
for ( unsigned int Index = 0; Index != 50000; ++ Index )
   if( Array[ Index ] == 'a' ) Count ++;
Run Code Online (Sandbox Code Playgroud)

std :: count方法:

unsigned int Count = std::count ( Array, Array + 50000, 'a' );
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来搜索Array中的某些元素?

一些想法 - …

c++

6
推荐指数
1
解决办法
3879
查看次数

C++ 是否 std::string::erase 重新分配和...?

第一个问题,是否std::string::erase重新分配?

第二个问题,有没有更快的方法来快速删除某些单词或短语std::string?字符串的长度通常在300K左右。

c++

2
推荐指数
1
解决办法
2171
查看次数

C++ mpir:如何初始化 mpz_t 数组?

来源:

//$ DO DECLARATION
#define VEC_MAX_SIZE 600000
mpz_t Vec[ VEC_MAX_SIZE ];

//$ DO INITIALIZATION
mpz_array_init( Vec[ 0 ], VEC_MAX_SIZE, 2000 ); // Stack overflow error - 3rd param
Run Code Online (Sandbox Code Playgroud)

问题:

问题是我不知道如何正确初始化 mpz_t 数组,在本例中是 Vec。错误是堆栈溢出。我认为这是由第三个参数引起的。这是 mpz_array_init 的原型/定义:

#define mpz_array_init __gmpz_array_init
__GMP_DECLSPEC void mpz_array_init __GMP_PROTO ((mpz_ptr, mp_size_t, mp_size_t));
Run Code Online (Sandbox Code Playgroud)

错误:

Unhandled exception at 0x008e8377 in TestMPIR.exe: 0xC00000FD: Stack overflow.
Run Code Online (Sandbox Code Playgroud)

笔记:

我在 Windows 7 64 位上使用 mpir 3.1.1。

mpir 示例中的这个效果很好:

mpz_t Vec[ 20000 ];
mpz_array_init( Vec[ 0 ], 20000, 512 );
Run Code Online (Sandbox Code Playgroud)

回答:

感谢@Zeta 的出色回答。如果我错了请纠正我。我只是想把这个贴在这里,以便其他新手可以学习。

#define …
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
2546
查看次数

C++比较两个相似数组的长度

我相信Array1和Array2的声明方式不同,但它们都具有相同的类型 - char.Array1和Array2似乎都包含相同的精确值和相同数量的值.我不明白为什么他们的长度彼此不同.有人可以解释一下原因吗?

char Array1[ ] = { 1, 2, 3, 4, 5 };
char Array2[ ] = "\x01\x02\x03\x04\x05";

std::cout << "Length of Array1 = " << sizeof( Array1 )/sizeof( *Array1 )
          << std::endl
          << "Length of Array2 = " << sizeof( Array2 )/sizeof( *Array2 );
Run Code Online (Sandbox Code Playgroud)

输出:

Length of Array1 = 5
Length of Array2 = 6
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
88
查看次数

C++将结构数组清零?

struct OBJECT
{
unsigned int Var1;
std::string Str1;
...
bool YesNo;
};

OBJECT Obj[ 327 ];
Run Code Online (Sandbox Code Playgroud)

我对如何将Obj归零感到困惑.它有几种不同类型的元素.我必须将其所有成员设置为0吗?喜欢...... Obj[0].Str = ""; ?所以问题是,这样做的正确方法是什么?

我的尝试:

::memset( &Obj, 0, sizeof( Obj ) );
Run Code Online (Sandbox Code Playgroud)

我不确定我是否正确地做到了......

哦,有没有更快的方法将数组清零?

c++

1
推荐指数
1
解决办法
1296
查看次数

标签 统计

c++ ×6

constructor ×1

stdvector ×1