小编use*_*123的帖子

如何返回std :: pair的内容?

我试图返回std::pair其中包含的内容intstring值.我应该保留什么功能返回类型?

我尝试了两种intchar返回类型,但两者都给出了错误.我在下面给出了错误:

#include<iostream>
#include<algorithm>
#include<map>
#include<vector>

    std::pair<int,std::string>client()  
{

std::vector<std::string> most { "lion","tiger","kangaroo",
                                 "donkey","lion","tiger",
                                 "lion","donkey","tiger"
                                 };
std::map<std::string, int> src;
for(auto x:most)
    ++src[x];

std::multimap<int,std::string,std::greater<int> > dst;

std::transform(src.begin(), src.end(), std::inserter(dst, dst.begin()), 
                   [] (const std::pair<std::string,int> &p) {
                   return std::pair<int,std::string>(p.second, p.first);
                   }
                 );

std::multimap<int,std::string>::iterator it = dst.begin();

 for(int count = 0;count<3 && it !=dst.end();++it,++count)
   std::cout<<it->second<<":"<<it->first<<std::endl;

 return *it;  
}

int main()
{
std::multimap<int,std::string>::const_iterator rec;
rec= client();  // Error  no match for ‘operator=’ in ‘rec = client()()’ …
Run Code Online (Sandbox Code Playgroud)

c++ return return-value

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

使用memset()为const char*分配新大小

我已声明缓冲区 const char* buf;

后来我想用memset重新分配大小

buffer_len = 1024;
    memset(buf, '\0', buffer_len);
    buf[strlen(buf)-1]='\0';
Run Code Online (Sandbox Code Playgroud)

给出错误:

client.cpp:73:30: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
In file included from client.cpp:2:0:
/usr/include/string.h:62:14: error:   initializing argument 1 of ‘void* memset(void*, int, size_t)’ [-fpermissive]
client.cpp:75:21: error: assignment of read-only location ‘*(buf + (((sizetype)strlen(buf)) + -1u))’
Run Code Online (Sandbox Code Playgroud)

我知道这是由于const但是有没有替代或方法来执行它是const的事件?

c c++

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

结合正则表达式验证英国和美国的电话号码

我有两个正则表达式.一个用于验证英国号码(来自我之前的问题),另一个用于验证美国号码:

  1. ^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$^

  2. /\(?[2-9][0-8][0-9]\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}/

我希望将这两者结合起来,以便我可以验证任何美国或英国号码.

是否或|操作足够?

在这里,我使用|将它们组合在一起 但它不验证数字:

http://regex101.com/r/wD4dI9

php regex

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

读取shell脚本导致python

我有shell脚本,在执行时输出终端上的一些文本结果.

我能够从python脚本执行那个shellscipt,但我无法将shell脚本结果存储到python中

我的python脚本:

import subprocess
#result = subprocess.call(['/root/Desktop/karim/software/cherrypicker1.01/cherryP.sh'],shell = True)   This yields result 0
subprocess.call(['/root/Desktop/karim/software/cherrypicker1.01/cherryP.sh'],shell = True)
print "REsult is  : "
print result
Run Code Online (Sandbox Code Playgroud)

cherryP.sh

./cherrypicker.sh input.txt
#for line in $(cat input.txt.responses); do echo "$line" ; done
DONE=false
until $DONE
do
  read line || DONE=true
  echo $line   # this will echo the result which I want to use in python script
done < input.txt.responses
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者其他合理的解决方案是什么?

更新cherryP.py

import subprocess
result = subprocess.check_output(['/root/Desktop/karim/software/cherrypicker1.01/cherryP.sh'], shell = True)
print result
Run Code Online (Sandbox Code Playgroud)

python bash shell

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

从文本内容中略过逗号和其他标记字符,并用空格替换它

在使用c ++执行此操作时,我们可以扫描从第一个char到strlen(text)-1的整个内容,并检查逗号和标点符号.如果找到char,那么我们可以用"space"或任何其他char替换它.

for(i=0;i<str.strlen();i++)
{
    if(ch[i] == ',' or [other])  //assume I have copied content of str in ch[]
       ch[i]=' ';
}
Run Code Online (Sandbox Code Playgroud)

但是有没有提供此功能的C++函数或类?

我正在处理字符串,unordered_map,isstringstream,vector.每个都有自己的功能.但这有什么可以用于我的上述目的吗?或者是其他东西?

c++ string

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

限制正则​​表达式中的过滤器长度

这里我有正则表达式,我希望它只过滤字长> 8和<15个字符.我补充道

(?=.{8,14})b$

正则表达式-HTTP://regex101.com/r/sA5xL5

但它没有任何差异.

`^(?=.{8,14})b$\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$^|^2(?:0[01378]|3[0189]|4[017]|8[0-46-9]|9[012])\d{7}|1(?:(?:1(?:3[0-48]|[46][0-4]|5[012789]|7[0-49]|8[01349])|21[0-7]|31[0-8]|[459]1\d|61[0-46-9]))\d{6}|1(?:2(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-4789]|7[013-9]|9\d)|3(?:0\d|[25][02-9]|3[02-579]|[468][0-46-9]|7[1235679]|9[24578])|4(?:0[03-9]|2[02-5789]|[37]\d|4[02-69]|5[0-8]|[69][0-79]|8[0-5789])|5(?:0[1235-9]|2[024-9]|3[0145689]|4[02-9]|5[03-9]|6\d|7[0-35-9]|8[0-468]|9[0-5789])|6(?:0[034689]|2[0-689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0124578])|7(?:0[0246-9]|2\d|3[023678]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-5789]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\d|8[02-9]|9[02569])|9(?:0[02-589]|2[02-689]|3[1-5789]|4[2-9]|5[0-579]|6[234789]|7[0124578]|8\d|9[2-57]))\d{6}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-4789]|8[345])))|3(?:638[2-5]|647[23]|8(?:47[04-9]|64[015789]))|4(?:044[1-7]|20(?:2[23]|8\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[123]))|5(?:24(?:3[2-79]|6\d)|276\d|6(?:26[06-9]|686))|6(?:06(?:4\d|7[4-79])|295[567]|35[34]\d|47(?:24|61)|59(?:5[08]|6[67]|74)|955[0-4])|7(?:26(?:6[13-9]|7[0-7])|442\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\d|37(?:5[2-5]|8[239])|84(?:3[2-58]))|9(?:0(?:0(?:6[1-8]|85)|52\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\d{3}|176888[234678]\d{2}|16977[23]\d{3}|7(?:[1-4]\d\d|5(?:0[0-8]|[13-9]\d|2[0-35-9])|624|7(?:0[1-9]|[1-7]\d|8[02-9]|9[0-689])|8(?:[014-9]\d|[23][0-8])|9(?:[04-9]\d|1[02-9]|2[0-35-9]|3[0-689]))\d{6}|76(?:0[012]|2[356]|4[0134]|5[49]|6[0-369]|77|81|9[39])\d{6}|80(?:0\d{6,7}|8\d{7})|500\d{6}|(?:87[123]|9(?:[01]\d|8[0-3]))\d{7}|8(?:4[2-5]|70)\d{7}|70\d{8}|56\d{8}|(?:3[0347]|55)\d{8}|8(?:001111|45464\d)$|(?:\((\+?\d+)?\)|(\+\d{0,3}))? ?\d{2,3}([-\.]?\d{2,3} ?){3,4}`
Run Code Online (Sandbox Code Playgroud)

请不要打扰正则表达式的长度.

即使匹配长度超过,它也匹配

缺少什么来限制它只与文件管理器8-14长度模式匹配.

php regex

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

标签 统计

c++ ×3

php ×2

regex ×2

bash ×1

c ×1

python ×1

return ×1

return-value ×1

shell ×1

string ×1