相关疑难解决方法(0)

新操作连续分配的内存是?

正如标题所说,我想在c ++中知道,一个新操作分配的内存是否是连续的......

c++

3
推荐指数
2
解决办法
3699
查看次数

动态数组排序算法编译器错误

我很难让 std::begin() 与动态分配的数组(指针)一起工作,它似乎与堆栈分配的数组一起工作正常。

这有效:

int numbers[100];

// Fill array with numbers

std::sort(std::begin(numbers), std::end(numbers));
Run Code Online (Sandbox Code Playgroud)

这不

int* numbers = new int[10000000];

// Fill array with numbers

std::sort(std::begin(numbers), std::end(numbers));
Run Code Online (Sandbox Code Playgroud)

这是由此产生的错误。

ptests.cpp:120:33: error: no matching function for call to ‘begin(int*&)’
     std::sort(std::begin(numbers), std::end(numbers));
                                 ^
ptests.cpp:120:33: note: candidates are:
In file included from /usr/include/c++/4.8/utility:74:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ptests.cpp:1:
/usr/include/c++/4.8/initializer_list:89:5: note: template<class _Tp> constexpr const _Tp* std::begin(std::initializer_list<_Tp>)
     begin(initializer_list<_Tp> __ils) noexcept
     ^
/usr/include/c++/4.8/initializer_list:89:5: note:   template argument deduction/substitution failed:
ptests.cpp:120:33: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘int*’
     std::sort(std::begin(numbers), std::end(numbers));
                                 ^ …
Run Code Online (Sandbox Code Playgroud)

c c++ arrays

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

标签 统计

c++ ×2

arrays ×1

c ×1