小编Adr*_*ian的帖子

指向char的指针

char* pStr = new String("Hello");
char* s = "Hello";
Run Code Online (Sandbox Code Playgroud)

第一个是正确的吗?这两者有什么区别吗?我的猜测是第一个是在堆上分配的,另一个是堆栈.我正确还是有其他差异?

c++

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

使用TCP从客户端向服务器发送字节的问题

我的send()和recv()看起来像这样:

int Send(const char* buffer, int size)
{
    cout << "SIZE: " << size << endl;
    int offset;
    while(offset < size)
    {
        int n = ::send(getSocket(), buffer + offset, size - offset, 0);
        if(n == SOCKET_ERROR)
        {
            break;
        }
        offset += n;
        if(offset != size)
        {
            Sleep(1);
        }
    }
    return offset;
}

int Recv(char* buffer, int size)
{
    int n = ::recv(getSocket(), buffer, size, 0);
    if(n == SOCKET_ERROR)
    {
        cout << "Error receiving data" << endl;
    }
    if(n == 0) …
Run Code Online (Sandbox Code Playgroud)

c c++ sockets winsock

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

从std :: set C++中删除对重复项

您好我有一个std ::对的包含以下元素:

set<pair<string, int> > mapElem;

apples 1
apples 2
at 1
eating 1
eating 2
football 1
going 1
today 1
today 2
today 3
today 4
today 5
tommy 1
tommy 2
Run Code Online (Sandbox Code Playgroud)

我需要找到一种方法来删除重复项并保留仅具有最高第二对的方法.(对不起,如果这个或标题令人困惑)编辑:如果可能,不使用std :: map!

apples 2
at 1
eating 2
football 1
going 1
today 5
tommy 2
Run Code Online (Sandbox Code Playgroud)

c++ stl

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

如何在C++中实现grep,以便它与管道(stdin等)一起使用?

我想为我在Windows中使用的Shell实现grep(仅用于学习目的).
我知道grep具有以下语法:

grep pattern files
Run Code Online (Sandbox Code Playgroud)

所以我可以做一个像这样的功能:

int grep(string stringToMatch, string fileName) // just one file
{
   // search file for stringToMatch
   // print line containing stringToMatch
}
Run Code Online (Sandbox Code Playgroud)

我的困惑是,当我使用这样的管道时,grep应该如何工作:

ls | grep someword
Run Code Online (Sandbox Code Playgroud)

我实现了"ls"将所有输出放在一个向量中并返回,所以我想我的grep应该在向量中搜索结果.那么正确的grep函数应该怎么样呢?我需要2个grep函数吗?

提前致谢.

c++ pipe

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

模板非类型参数为静态成员函数

我正在尝试编写一个模板,将模板作为非类型参数传递给静态成员函数:

#include <iostream>
using namespace std;

class C {
public:
    static void method()
    {
        cout << "C::method" << endl;
    }
};

typedef void (C::*pMethod)();
template<typename T, pMethod>
void callingFunction()

{
    T c;
    pMethod aPointerToMember = &T::method;
    (c.*aPointerToMember)();
}


int main()
{
    callingFunction<C, &C::method>();

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

但是在main中调用函数时总是会出错:

error: no matching function for call to 'callingFunction()' // mingw
Run Code Online (Sandbox Code Playgroud)

如果成员函数不是静态的,它可以工作,我怎样才能使它与静态函数一起工作?

谢谢.

谢谢

c++

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

从其他列表中删除项目列表

假设我有一个包含10个元素的listBox,我将前4个元素放在List list1中,其余元素放在另一个List list2中:

list2 = listbox.remove(list1);
Run Code Online (Sandbox Code Playgroud)

像这样的东西.这是真的吗?

谢谢.

c#

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

如何设置条件断点来测试CString变量是否为空

所以我有这个简单的代码片段:

CString str;
..................
if ( str.IsEmpty() )
   str = spRelease->GetID();
Run Code Online (Sandbox Code Playgroud)

我想在最后一行放置一个条件断点来测试str是否为空.我先试了一下:

str == ""
Run Code Online (Sandbox Code Playgroud)

但我明白了:

Error overloaded operator not found
Run Code Online (Sandbox Code Playgroud)

然后这个:

str.isEmpty() == 0
Run Code Online (Sandbox Code Playgroud)

得到这个:

Symbol isEMpty() not found
Run Code Online (Sandbox Code Playgroud)

有什么想法可以做到这一点?任何解决方法?

谢谢.

c++ debugging breakpoints visual-studio

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

无法让Xalan运行任何示例

我下载Xalan-Java Version 2.7.1,解压缩,然后设置PATHfor java和CLASSPATHfor xalan:

set path=%PATH%;c:\Program Files\Java\jre6\bin

set classpath=%CLASSPATH%;c:\Xalan\
Run Code Online (Sandbox Code Playgroud)

(我也尝试仅为xalan.jar,xercesImpl.jar,xml-apis.jar设置类路径)

在测试简单的Hello World示例(或任何其他示例)时:

java org.apache.xalan.xslt.Process -in hello.xml -xsl hello.xsl -out hello.html
Run Code Online (Sandbox Code Playgroud)

我总是得到这个:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xalan/xslt
/Process
Caused by: java.lang.ClassNotFoundException: org.apache.xalan.xslt.Process
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.apache.xalan.xslt.Process.  Program will exit
Run Code Online (Sandbox Code Playgroud)

问题是什么 ?有人有想法吗?

谢谢.

xslt xalan

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

迭代器值与转换后的反向迭代器值不同

我有以下代码:

int main()
{
    vector<int> v;

    for(int i = 0; i < 10; ++i)
        v.push_back(i);

    auto it = v.begin() + 3;

    cout << "Iterator: " << *it << endl;

    vector<int>::reverse_iterator revIt(it);

    cout << "Reverse iterator: " << *revIt << endl;

}
Run Code Online (Sandbox Code Playgroud)

运行此代码后,我得到以下输出:

Iterator: 3
Reverse iterator: 2
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么2个值不同?

c++ iterator stl

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

没有用于调用'std :: advance'错误的匹配函数

我有以下代码,Xcode表示它不承认签名std::advance:

template<typename Container> const typename Container::value_type&
getNthElement(const Container& container, size_t n) {
    auto nElem = advance(container.begin(), n);
    return *nElem;
}
Run Code Online (Sandbox Code Playgroud)

编译器不支持C++14所以我不能使用cbegin(container).为什么这个解决方案有误?

c++ c++11

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

标签 统计

c++ ×8

stl ×2

breakpoints ×1

c ×1

c# ×1

c++11 ×1

debugging ×1

iterator ×1

pipe ×1

sockets ×1

visual-studio ×1

winsock ×1

xalan ×1

xslt ×1