小编XDP*_*mer的帖子

拆分字符串但保留空标记c ++

我试图拆分一个字符串并将其放入一个向量中

但是,每当有连续的​​分隔符时,我也想保留一个空标记:

例如:

string mystring = "::aa;;bb;cc;;c"
Run Code Online (Sandbox Code Playgroud)

我想将这个字符串标记为:; 分隔符,但在分隔符之间,如::和;; 我想在我的向量中插入一个空字符串;

so my desired output for this string is:

"" (empty)
aa
"" (empty)
bb
cc
"" (empty)
c
Run Code Online (Sandbox Code Playgroud)

另外我的要求是不要使用boost库.

如果有任何可以借给我一个想法.

谢谢

标记字符串但不包含空标记的代码

void Tokenize(const string& str,vector<string>& tokens, const string& delim)
{
       // Skip delimiters at beginning.
     string::size_type lastPos = str.find_first_not_of(delimiters, 0);
     // Find first "non-delimiter".
     string::size_type pos     = str.find_first_of(delimiters, lastPos);

while (string::npos != pos || string::npos != lastPos)
 {
    // Found a token, add it to the vector.
    tokens.push_back(str.substr(lastPos, pos …
Run Code Online (Sandbox Code Playgroud)

c++ tokenize

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

此示例代码将无法编译

我无法理解在cygwin shell中编译此代码时收到的错误消息.消息很长,但在这1000行误差的中间某处说:

没有匹配的运营商呼叫<

这是什么意思?这是我的代码:

#include <iostream>
#include <string>
#include <set>
#include <algorithm>
#include <iterator>

using namespace std;

struct Grade{
 string id;
 int score;

  bool operator() (Grade& a, Grade& b){
        return a.id < b.id;   
    } 
};  

int main()
{   
    Grade g;
    set<Grade> gs;

    g.id = "ABC123";
    g.score = 99;
    gs.insert(g);

    g.id = "BCD321";
    g.score = 96;
    gs.insert(g);

    for(auto it : gs)
        cout << it.id << "," << it.score;

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

c++

5
推荐指数
4
解决办法
177
查看次数

将函数作为参数传递的意义

我只是学习在c ++中传递一个作为参数的函数,但是我想知道它的意义是什么.

考虑这个例子,

#include <iostream>
using namespace std;

void argumentFunction(int x) {
      cout << x << " is the result.";
}

void myFunction(void (*functionparam) (int), char parameter[80]) {
    cout << parameter;
    (*functionparam)(1);
}

int main() {
    myFunction(&argumentFunction, "I am calling a function with a function.");      
    cin.ignore(80,'\n');
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么我需要将argumentFunction作为参数传递给myFunction,实际上我可以直接调用它而不传递它:

像这样:

#include <iostream>
using namespace std;

void argumentFunction(int x) {
      cout << x << " is the result.";
}

void myFunction(char parameter[80]) {
    cout << parameter;
    argumentFunction(1);
}

int main() …
Run Code Online (Sandbox Code Playgroud)

c++

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

aws S3 ListObjectsV2 api 中的 start-after 是什么意思?

ListObjectsV2 - Amazon Simple Storage Service 中

start-after
StartAfter 是您希望 Amazon S3 开始列出的位置。Amazon S3 在此指定键之后开始列出。StartAfter 可以是存储桶中的任何键。

目前尚不清楚它是如何列出的。是在添加文件的时候吗?或者按字典序排序?

amazon-s3 amazon-web-services aws-sdk

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

为什么这个链表从上次输入打印?C链表程序

所以我有这个简单的链表程序:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct record record;
struct record {
    char name[32]; 
    float score;
};

typedef struct node node;
struct node {
    record data;
    node *next; 
}; 

int main() {
    char data[100];
    char name[32];
    float x;
    node *p, *head;
    int counter = 0;

    head = 0;

    while ((fgets(data, 60, stdin) != NULL) && counter <= 3) {
        p = (node *) malloc (sizeof(node));

        sscanf(data, "%s %f", name, &x);
        strcpy(p->data.name,name);
        p->data.score = x;
        p->next = head;
        head = p;

        counter++; …
Run Code Online (Sandbox Code Playgroud)

c linked-list

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

如何在操作栏中添加后退箭头?

我想知道如何在操作栏中添加此箭头.我已经有一个操作栏,但只能在右侧添加图标,是否可以将标签居中?

在此输入图像描述

android android-actionbar

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

初始化Parse时无法解析符号配置

我试图在oncreate函数上初始化Parse,但它无法找到静态类Configuration.

这是文档的初始化:

    Parse.initialize(new Parse.Configuration.Builder(this)
            .applicationId("myAppId") 
            .clientKey(null) 
            .addNetworkInterceptor(new ParseLogInterceptor())
            .enableLocalDataStore()
            .server("https://myapp.herokuapp.com/parse/").build());
Run Code Online (Sandbox Code Playgroud)

Parse.Configuration中的配置标记为红色.

我还添加了最新的依赖项:

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.parse:parse-android:1.13.0'
   compile 'com.parse:parseinterceptors:0.0.2' 
   compile 'com.parse.bolts:bolts-android:1.+'
   compile 'com.android.support:appcompat-v7:22.2.1'
}
Run Code Online (Sandbox Code Playgroud)

不知道为什么它找不到配置类.

android initialization parse-platform

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

如果找不到值,则使用默认填充行PostgresSQL

我想返回user_activity的最后7天,但是对于那些空的日子,我想添加0作为值

说我有这张桌子

actions |  id   | date
------------------------
67      |  123  | 2019-07-7
90      |  123  | 2019-07-9
100     |  123  | 2019-07-10
50      |  123  | 2019-07-13
30      |  123  | 2019-07-15
Run Code Online (Sandbox Code Playgroud)

这应该是过去7天的预期输出

  actions |  id   | date
    ------------------------
    90      |  123  | 2019-07-9
    100     |  123  | 2019-07-10
    0       |  123  | 2019-07-11  <--- padded
    0       |  123  | 2019-07-12  <--- padded
    50      |  123  | 2019-07-13
    0       |  123  | 2019-07-14  <--- padded
    30      |  123  | …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

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

没有运算符'>>'匹配这些操作数

我的程序不会编译,因为它没有找到操作数匹配.它访问struct Student中的地图,我不确定这是否是访问地图的确切方法.

我的程序不会编译,因为它没有找到操作数匹配.它访问struct Student中的地图,我不确定这是否是访问地图的确切方法.

#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <string>
#include <map>
#include <list>


using namespace std;

struct Student {
    string id;
    map<string, int> scores;
};

istream& operator >>(istream &is, Sudent& g) {

    auto it = g.scores.begin();
    is >> g.id >> it->first >> it.second;
    return is;
}
Run Code Online (Sandbox Code Playgroud)

>> it->first我得到这个错误:

Error: no operator ">>" matches these operands
    operand types are: std::basic_istream<char, std::char_traits<char>> >> const std::string
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

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