小编Joe*_*res的帖子

内存概念

我目前正在学习低级别的arduino内容,包括内存.我的问题是,由于堆和堆栈在内存的另一侧生长,内存只会在两个中间某处相遇时发生,或者当其中一个遇到中间时发生.

c++ memory memory-management arduino

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

C++ map <K,T>初始化

我正在阅读"Ivor Horton的开始编程Visual C++ 2010",我在第10章 - 标准模板库.我的问题在于地图容器map<Person, string> mapname.这本书向我展示了很多添加元素的方法,比如稍后pair<K, T>使用和使用make_pair()函数,以及mapname.insert(pair).但突然他引入了以下代码中使用的元素添加技术:

int main()
{
    std::map<string, int> words
    cout << "Enter some text and press Enter followed by Ctrl+Z then Enter to end:"
        << endl << endl;

    std::istream_iterator<string> begin(cin);
    std::istream_iterator<string> end;

    while(being != end)   // iterate over words in the stream
        //PROBLEM WITH THIS LINE:
        words[*begin++]++;  // Increment and store a word count

    //there are still more but irrelevant to this question)
}
Run Code Online (Sandbox Code Playgroud)

指示的行是我的问题.我明白这words …

c++ stl map variable-assignment

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

插入迭代器与容器的成员函数插入器

我一直在学习STL在过去的两个星期,一直在处理很多的vector<T>,deque<T>list<T>.我一直在使用所有这些时间push_back(),push_front(),insert().目前,我已经介绍了"插入迭代器",其中包括:

  • back_insert_iterator,类似于push_back()并且确实要求容器具有push_back()工作功能
  • front_insert_iterator,类似于push_front()并要求容器具有push_front()
  • insert_iterator,类似的insert(),等等等等等等

所以我知道如何实现这一切.我的问题很简单,有什么区别?为什么要使用Insert Iterators呢?

c++ iterator stl inserter

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

Rand_Max*(max-min)+ min <<那是什么?

generate(vec.begin(), vec.end(), [=](){return static_cast<T>(static_cast<double>(ran())
/RAND_MAX*(max-min)+min); });
Run Code Online (Sandbox Code Playgroud)

问题:RAND_MAX*(max-min)+ min);

好的,所以我知道这个东西中的算法,lambda表达式和capture子句.我的问题对所有这些都非常荒谬.上面的粗体文字是什么意思.我的意思是,我知道它是随机值生成过程的一部分.但不知道到底发生了什么.那么有人可以打破那些微小的小代码.

c++ random stl srand c++11

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

Arduino串行通信未收到整个消息

我对Arduino通信有疑问.这很难描述,所以我不能在标题中使用它.无论如何,这里有以下内容:

所以我的接收端有这个代码:

if(Serial1.available())
{
    while(Serial1.available())
    {
        uint8_t inByte = Serial1.read();

        inByte = inByte ^ k;

        Serial.write(inByte); 
    }

    Serial.println(" done");
}
Run Code Online (Sandbox Code Playgroud)

它应该在一行打印并在完成后打印完成.在Serial1.available()似乎跳过下Serial1.available(),我不知道发生了什么事情.无论如何这里是我当前的,坏的,输出:

h done
e done
l done
l done
o done

done
Run Code Online (Sandbox Code Playgroud)

应该是什么时候:

hello done
Run Code Online (Sandbox Code Playgroud)

我很抱歉,如果这可以说得更好但是现在我可以打字,我的大脑有点痛苦.我从未在Windows c ++控制台应用程序中遇到过这种行为.

serial-port communication arduino

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

用C++翻转抛物线

我正在编写一个需要评估函数y = -x ^ 2 + 49的游戏.当我在TI-84上输入以下内容时,我必须输入 - (x)^ 2 + 49或-x ^ 2 + 49,而不是(-x)^ 2 + 49.这就是我在实现它的方式C++

pp[i].death = -(j)^2 + 49;  // Upside down hyperbola
Run Code Online (Sandbox Code Playgroud)

我设置了一个断点来跟踪值,它只是没有意义.我的j在[-7,+ 7]范围内,所以它应该返回[0,49]范围内的结果.但C++代码给了我52或一些随机数.答案将不胜感激.

c++ math

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

奇怪的阶级行为

  class Blades
   {
   public:
       Blades(int test):speed(test){}

       void Blades_draw()
       {
           al_draw_filled_circle(100, 100, 5, al_map_rgb(26, 116, 217));
       }
    private:
        int speed;
    };
Run Code Online (Sandbox Code Playgroud)

我已经创建了许多与此类似的类,我有一个main.cpp,其中所有内容都已实现.所有其他类都工作正常,即使它如此简单,这个问题也是有问题的.该类没有完成,并且元素是出于测试原因.但是当我尝试在main.cpp中声明一个变量时,如下所示

Blades blade(50);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它很奇怪,在我还在输入它的状态下Blades blade(,没有任何东西出现,而其他类有智能感知.当我确实放一个值并用括号括起来时,它不会抱怨.但是当我稍后尝试访问该类以获取某些元素时blade.Blades_draw();,当我到达点部分时,它并没有给我建议,并且红色弯曲的下划线显示说刀片未定义.我的头脑即将爆炸,我需要在学校之前完成这个项目.

c++ class

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