小编cpx*_*cpx的帖子

查找小于或大于容器类的范围值

目前,我有一个std::map <DWORD, DWORD>表,我正在寻找一个匹配特定范围的键值.

例如:

从映射中查找键值,该值的值应小于搜索键值的<50或大于50.

如果搜索到的键值是20,那么我想要一个来自map的范围的键值ie

-70.............20............+70
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法来找到除了使用两个循环之外的键值(第一个用于小于,第二个用于大于)或用于存储表格数据的适当方式用于此类操作?

c++ stl

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

C中的循环问题

我正在尝试使用以下程序计算"2 ^ 0 + 2 ^ 1 + 2 ^ 2 + ... + 2 ^ 14"(我是一个新手,只能通过将自身相乘一定次数来计算指数).结果应该是32767,但我跑了它并获得了270566475,我想了很久但无法弄清楚为什么......

#include <stdio.h>

int main(void)
{
   int i, e, exponent, sum;

   e = 1;
   exponent = 1;
   sum = 1;

   for (i = 1; i <=14; i++)
   {
       for (e = 1; e <= i; e++)
       {
          exponent *= 2;
       }

       sum += exponent;
   }

   printf("%d\n", sum);

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

那么这有什么问题?谢谢!!!

c for-loop nested-loops

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

来自新手程序员的基本C++问题

我是一名新手C++程序员,正在尝试在学校实验室工作.下面,我已经粘贴了我正在处理的程序的shell.在main中,我实例化car1属于的对象class Velocity.当我尝试在函数中使用此实例化时mpsConverter,我收到一个错误,指示表达式必须具有类类型.我们在课堂上做了类似的例子,这种格式运行良好.有任何想法吗?如果这不是适合此类简单问题的适当论坛,请指出正确的方向指向更合适的问题.

谢谢,Al

// P1_2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "conio.h"
using namespace std;

class Velocity
{
    private:
        int mpsInput;       // input value: meters per second (mps)
        int kmphInput;      // input value: km per hour
        int mphOutput;      // output value: comverted value of km per hour to miles per hour (mph) 
    public:
        int kmphOutput;     // output value: converted value of mps to km per …
Run Code Online (Sandbox Code Playgroud)

c++

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

如何使用STL算法查找2D数组中列值的最大值和最小值

我有一个2D数组(int的向量向量)与int值,如这些

34  19  89  45
21  34  67  32
87  12  23  18

我想找到列值(不是行值)的最大值和最小值,最好使用STL算法

std::max_element, std::min_element
Run Code Online (Sandbox Code Playgroud)

c++ algorithm stl vector

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

我的toString()方法没有覆盖Calendar toString()方法

这是我的代码,非常简单.它不是家庭作业,我通过教育书自学java:


import java.util.*;

/** @author Chris */

public class Exercise9_9 extends GregorianCalendar
{   
    public static void main(String[] args)
    {
        String[] stringList = {"s", "c", "b", "f", "e", "q", "g", "w", "i", "o"};
        Integer[] integerList = {5, 7, 8, 9, 6, 5, 4, 1, 2, 3};
        Calendar[] calendarList = new Calendar[10];

        for (int a = 0; a < calendarList.length; a++)
        {
            calendarList[a] = new GregorianCalendar();
            calendarList[a].set(Calendar.YEAR, ((int)Math.random()* 1000));
        }

        System.out.println("Largest String: " + max(stringList));
        System.out.println("Largest int: " + max(integerList));
        **System.out.println("Largeset date: …
Run Code Online (Sandbox Code Playgroud)

java overriding overloading tostring

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

boost :: shared_ptr的内容作为set的关键?

我想存储一系列指针std::unordered_set.我希望散列函数不是基于内存地址,而是基于指针引用的实际对象中包含的某些值.

例如(using stdboost名称空间以便于阅读)

class MyClass {
  ...
  //some values I want to use as the key for the hash
  double a;
  int b;
  int c;
}

typedef shared_ptr<MyClass> MyClassPtr;

set<MyClassPtr> mySet;
Run Code Online (Sandbox Code Playgroud)

我并不担心结合实际的哈希值(在这里找到答案:http://www.boost.org/doc/libs/1_47_0/doc/html/hash/combine.html),而是取消引用shared_ptr以获取键.

我所关注的另一个问题== operator是已经确定了boost::shared_ptr,我想知道这是否会导致我的方法出现问题?我需要测试对象的相等性,而不是指针.

在集合中存储指针,因为代码的其他几个部分通过自己的指针引用对象.也欢迎任何替代方法.

谢谢

c++ boost set

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

Windows已生成断点

我在VS2010中调试我的C++ Win32程序,我总是得到"Windows在program.exe中触发了一个断点".

我对代码进行了双重检查,三重检查和四重检查.我找不到应该发生的任何理由.但它每次都发生在同一点,所以必须有一些东西.

涉及相当多的代码(构造函数,析构函数,窗口消息,内存分配和释放等等),所以在这里放置一些具体内容非常困难,但与此同时我明白,如果没有代码,你可以'我真的做了很多解释.

基本上在点击按钮时,会显示一个显示图像的窗口.如果满足某个条件,我发送一个WM_DESTROY窗口并删除触发析构函数的变量,该析构函数调用Release()my LPPICTURE,并将释放的变量设置为NULL.

然后,当用户再次单击该按钮时,它会尝试动态分配一个新实例(与之前完全相同),这就是生成断点的地方.AFAIK(我一直试图调试这个超过一个小时),构造函数甚至没有启动.它似乎打破new()了动态内存分配的功能.

据我所知,它突破了return HeapAlloc(_crtheap, 0, size ? size : 1);第54行或malloc.c

奇怪的是,当我在VS2010之外运行exe时,一切都继续正常.该程序不会崩溃,并继续按预期工作!

c++ winapi visual-studio-2010

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

关于'CASE'转换失败

在使用' CASE'我遇到的问题,我从来没有听说过.
问题是这样的:我使用' CASE'statement in' SELECT'子句作为字段.调用具有int数据类型的列时,它是成功的; 但是,在调用varchar或datetime时,它不成功.
在错误结果中,它说我标记了临时字段,包括' CASE'语句int,但不是这样.请帮忙...

'STORED PROCEDURE'内容

CREATE PROC spRegistry_PersonsGetField
@ID int,
@Field varchar(100)
AS
SELECT CASE @Field 
WHEN 'Name' THEN Name
WHEN 'Surname' THEN Surname
WHEN 'Username' THEN Username
WHEN 'Password' THEN Password
WHEN 'Status' THEN dbo.fnStatus(Status)
WHEN 'EMail' THEN EMail
WHEN 'Tel' THEN dbo.fnIsEmpty(Tel)
WHEN 'Address' THEN dbo.fnIsEmpty(Address)
WHEN 'City' THEN dbo.fnIsEmpty(City)
WHEN 'BirthDate' THEN dbo.fnDate(BirthDate)
WHEN 'Gender' THEN dbo.fnGender(Gender)
WHEN 'Lang' THEN Lang
ELSE NULL
END
AS …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

从DOM中删除节点

我写了这个程序来从树中删除一个节点,但它仍然存在!

怎么会发生这种情况?打印节点内容后,它仍然显示与删除节点内容之前相同的内容,这意味着它仍然存在!

码:

 public class JavaApplication38 {
   public static void check(Node node){


       if (node == null || node.getNodeName() == null)
    return;



  check(node.getFirstChild());  

System.out.println(node.getNodeValue() != null && node.getNodeValue().trim().length() == 0 ? "" : node);
  if (  "abcd".equals(node.getTextContent()))
      node.getParentNode().removeChild(node);
    check(node.getNextSibling());  

}
    public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {


     File file = new File("d:\\a.xml");
  DocumentBuilderFactory dbf =
  DocumentBuilderFactory.newInstance();
  DocumentBuilder db = dbf.newDocumentBuilder();
  Document document = db.parse(file);
  document.getDocumentElement().normalize();




  Node b=document.getFirstChild();


  check(b);
  check(b);

    }

 }
Run Code Online (Sandbox Code Playgroud)

java dom

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

Python中的浮点加法

为什么Python中的后一种情况确实不会产生结果3.3呢?

>>> 1.0 + 2.3
3.3
>>> 1.1 + 2.2
3.3000000000000003
Run Code Online (Sandbox Code Playgroud)

对我来说似乎没有任何意义.对于您所获得的相同结果的表示有什么限制,1.0 + 2.3但不是通过1.1 + 2.2

python floating-point

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