小编use*_*963的帖子

char vs wchar_t vs char16_t vs char32_t(c ++ 11)

根据我的理解,a char是安全的容纳ASCII字符,char16_t而且char32_t可以安全地容纳来自unicode的字符,一个用于16位变体,另一个用于32位变量(我应该说"a"而不是"the" ?).但我当时想知道背后的目的wchar_t是什么.我应该在新代码中使用该类型,还是仅仅支持旧代码?wchar_t如果根据我的理解,它的大小不能保证大于一个,那么旧代码的目的是什么char?澄清会很好!

c++ c++11

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

C++字符串函数 - 为什么它们通常具有未指定的复杂性?

我只是注意到,根据最新的C++ ISO标准,string::pop_backstring::erase(名称二,可能还有其他)成员函数具有未指定的复杂性.将复杂性留给图书馆编码员的选择背后的原因是什么?实际上是否存在任何人都知道具有非常数复杂性的实现string::pop_back

c++ string time-complexity language-lawyer

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

有没有办法使用独立的`std :: begin`和const_iterator?

我喜欢一致性.我最近问过使用std::begin与例如的问题std::vector<int>::begin,并且一致的决定似乎是使用前者,因为它更通用.但我想我在泥里找到了一根棍子.有时候,你想传达的是,当你循环通过时,你不会改变容器,因此调用std::vector<int>::cbegin.它将使你有时做你的代码很不对称iter = v.cbegin()等次做iter = begin(v).有没有办法解决这种缺乏对称性的问题,你还会推荐std::begin这种知识吗?为什么C++没有std::cbegin

c++ iterator const-correctness c++11

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

指针地图与结构/容器地图(C++)

我正在学习数据结构课,在教授的所有例子中,他总是使他的地图具有指向结构或容器的指针值,而不是保持结构或容器本身.

他只是把它作为一种习惯,还是有充分的理由来加速?

  • 我知道你可以使用数据指针来避免拥有冗余的数据副本,但仍然可以同时保存多个容器/结构中的数据.
  • 在这些例子中,情况并非如此.数据仅在该地图中.

c++ dictionary pointers

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

使用lambda函数定义非常小的辅助函数是否很好?

作为一个愚蠢的例子,假设我有一个函数int f(vector<int> v),由于某种原因,我需要v多次执行几个操作f.而不是在其他地方放置辅助函数(这可能会增加混乱并损害可读性),做这样的事情有哪些优点和缺点(效率,可读性,可维护性等):

int f(vector<int> v)
{
    auto make_unique  = [](vector<int> &v)
    {
        sort(begin(v), end(v));
        auto unique_end = unique(begin(v), end(v));
        v.erase(unique_end, end(v));
    };
    auto print_vector = [](vector<int> const &v)
    {
        copy(begin(v), end(v), ostream_iterator<int>(cout, " "));
        cout << endl;
    };

   make_unique (v);
   print_vector(v);
   // And then the function uses these helpers a few more times to justify making
   // functions...
}
Run Code Online (Sandbox Code Playgroud)

还是有一些首选的选择?

c++ lambda coding-style c++11

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

寻找 8x8(或 nxn)离散余弦变换 (DCT)/IDCT 伪代码

我已经在 Google 上搜索了一段时间,想找到一个相当高效的 8x8(或 nxn)DCT 算法的伪代码,但我找不到任何东西!

我采用了幼稚的方法,并且执行起来花费了太长时间。

如果您可以发布一些伪代码或参考一本好书/文档/网站,那将会很有帮助。

C 或 C++ 示例会更好!

c++ algorithm dct

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

remove_if有问题(几次删除后停止删除)

下面的代码想要一个字符串,只输出英文字母表中的小写字母.

string simplifyString(string word)
{
    word.erase(remove_if(word.begin(), word.end(), [](char letter){return !isalpha(letter);}));
    transform(word.begin(), word.end(), word.begin(), tolower);
    return word;
}

int main()
{
    string s = "a.b.c.d.e.f.g.h.";
    cout << simplifyString(s) << endl;;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:abcdefgh.fgh

所以代码工作然后停止工作.到底他妈发生了什么?

c++ algorithm remove-if

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

Matrix Multiply> for loop> bsxfun - 奇数速度结果

我有一个n乘n矩阵A,一组n个系数k(n乘1),以及一个叫做row(1乘n)的矩阵.我的目标是从第i行的第i行中减去第k行中第i个系数加权的行.我有三个问题:为什么我的for-loop表现优于内置矩阵乘法,一般来说,是什么解释了每种方法的优越性接下来,还有比我提出的三个方法更好的方法吗?

% Define row & coefficients used in each method
k = (1:1000).';
row = 1:1000;

% Method 1 (matrix multiply) ~15 seconds
A = magic(1e3);
tic;
for z = 1:1e3
    A = A - k*row;
end
toc;
% Method 2 (for loop) ~11 seconds
B = magic(1e3);
tic;
for z = 1:1e3
    for cr = 1:1000
        B(cr,:) = B(cr,:) - k(cr)*row;
    end
end
toc;
% method 3 (bsxfun) ~ 4 seconds
C = magic(1e3);
tic;
for z = 1:1e3 …
Run Code Online (Sandbox Code Playgroud)

performance matlab loops matrix bsxfun

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

如何使用remove_if!一个函数(不是一个函数)

基本上,我试图这样做:

word.resize(remove_if(word.begin(),word.end(),not1(isalpha())) - word.begin());

我知道丑陋的解决方法,你只需要声明自己的功能并传递它.但有没有办法让这个工作?我在isalpha函数下面有一条红线,显示"函数调用中的参数太少"的消息.

c++ string algorithm

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