我有这个代码:
#include <iostream>
#include <functional>
struct Foo
{
int get(int n) { return 5+n; }
};
int main()
{
Foo foo;
auto L = std::bind(&Foo::get, &foo, 3);
std::cout << L() << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
似乎这个:
auto L = std::bind(&Foo::get, &foo, 3);
Run Code Online (Sandbox Code Playgroud)
相当于:
auto L = std::bind(&Foo::get, foo, 3);
Run Code Online (Sandbox Code Playgroud)
为什么?
我刚刚开始阅读C++的初学者书.我有一些java经验(但是说过,我从来没有在java中使用默认参数,说实话)
所以,如上所述,我的问题是默认参数..
这是我正在使用的代码片段:
#include <iostream>
using namespace std;
//add declaration
int add(int a, int b);
int main (void)
{
int number1;
cout << "Enter the first value to be summed: ";
cin >> number1;
cout << "\nThe sum is: " << add(number1) << endl;
}
int add(int a=10, int b=5)
{
return a+b;
}
Run Code Online (Sandbox Code Playgroud)
我从g ++编译器得到的响应是:"函数'int add(int,int)'的参数太少了
我做错了吗?(我也用文字参数尝试过)
PS我似乎无法正常显示代码片段?系统有变化吗?
所以如果我有一个像这样的单词的向量:
Vec1 = "words", "words", "are", "fun", "fun"
Run Code Online (Sandbox Code Playgroud)
结果列表:"有趣","文字"
我试图确定哪些单词是重复的,并返回1个副本的字母顺序矢量.我的问题是我甚至不知道从哪里开始,我发现唯一接近它的std::unique_copy是我不需要做的事情.具体来说,我输入的是std::vector<std::string>输出a std::list<std::string>.如果需要,我可以使用仿函数.
有人至少可以把我推向正确的方向吗?我已经尝试过阅读stl文档,但我现在只是"大脑"被阻止了.
我正在构建一个庞大的消息队列,并且只使用PUSH和POP,这样可以更高效地(矢量或队列)以最大速度维护大数据
struct MQStruct {
wchar_t *serviceName;
int durability;
int msgType;
int msgHeader;
wchar_t *msgId;
wchar_t *payload;
int payloadSize;
int ttl;
int priority;
}MQStructObj;
vector<MQStruct> MQvector;
queue<MQStruct> MSQ;
int SendMessage(wchar_t *serviceName, int durability, int msgType, int msgHeader, wchar_t *msgId, wchar_t *payload, int payloadSize, int ttl, int priority) {
MQStructObj.serviceName=serviceName;
MQStructObj.durability=durability;
MQStructObj.msgType=msgType;
MQStructObj.msgHeader=msgHeader;
MQStructObj.msgId=msgId;
MQStructObj.payload=payload;
MQStructObj.payloadSize=payloadSize;
MQStructObj.ttl=ttl;
MQStructObj.priority=priority;
//Which one is better (Vector or Queue) in term of memory, speed and why
MSQ.push(MQStructObj);
//OR
MQvector.push_back(MQStructObj);
return 0;
}
Run Code Online (Sandbox Code Playgroud) ifstream infile;
string read_file_name("test.txt");
infile.open(read_file_name);
string sLine;
while (!infile.eof())
{
getline(infile, sLine);
cout << sLine.data() << endl;
}
infile.close();
Run Code Online (Sandbox Code Playgroud)
该程序打印文件中的所有行,但我想只打印第一行.
如何使用C++将unsigned short转换为string?我有两个未签名的短变量:
unsigned short major = 8, minor = 1;
Run Code Online (Sandbox Code Playgroud)
我想加入他们的字符串,看起来像:
std::string version = major + "." + minor;
Run Code Online (Sandbox Code Playgroud)
我该怎么做?将提供一个小样本代码.
谢谢
我有一个头文件和一个.cpp文件.我需要为我的.h文件编写函数,但是在我完全完成一个骨架.cpp文件之前我得到一个错误.
Money.h
#ifndef MONEY_H
#define MONEY_H
#include <iostream>
#include <iomanip>
using namespace std;
class Money
{
public:
Money(int dollars, int cents);
Money operator+(const Money& b) const;
Money operator-(const Money& b) const;
Money operator*(double m) const;
Money operator/(double d) const;
void print() const;
private:
int dollars;
int cents;
};
#endif
Run Code Online (Sandbox Code Playgroud)
Money.cpp
#include "Money.h"
Money::Money(int dollars, int cents){
}
Money operator+(const Money& b) {
}
Money operator-(const Money& b) {
}
Money operator*(double m) {
}
Money operator/(double d) {
}
void …Run Code Online (Sandbox Code Playgroud) 我有两个typedef:
typedef std::vector<int> Container;
typedef std::vector<int>::const_iterator Iter;
Run Code Online (Sandbox Code Playgroud)
在我考虑的问题,我执行一些操作Container Input,在那之后,我想计算std::distance(Input.begin(),itTarget),其中itTarget是的Iter类型.但是我得到了这个编译器错误no instance of function template "std::distance" matches the argument list,并且只有在转换之后,即std::distance(static_cast<Iter>(Input.begin()),itTarget)一切正常.
我想知道为什么会这样?
任何人都可以让我知道实现这一目标的最佳方法.
说,我有一个模板功能
template<typename ARGUMENT>
void get_result(ARGUMENT &ag)
{
// arg can be a single object of a particular object or list of objects of that particular class.
//rest
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以检查&ag是单个对象还是对象列表.此外,使用给定的模板界面.
如果答案是通过类接口以某种方式通过模板规范并不重要.唯一的问题是我不想指定对象类型或列表类型.
防爆.ag = int或ag = list
CB
在gcc-4.5下,它打印0,在gcc-4.6下,打印1.
#include <iostream>
enum VenueId: char {};
int
main (int argc, char ** argv)
{
VenueId v = (VenueId)'P';
std::cout << (v=='P') << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)