[Rcpp-devel] How to efficiently remove some words from a big vector of strings.
Dirk Eddelbuettel
edd at debian.org
Sun Dec 22 15:31:50 CET 2013
Please keep follow-up questions on the list where I am replying to now.
On 22 December 2013 at 15:20, contact AG STUDY wrote:
| Impressive!Thanks for this fast answer.
|
| | error: no matching function for call to 'remove_if(std::vector
| | <std::basic_string<char> >::iterator, std::vector<std::basic_string<char>
| | >::iterator, stripWords(std::vector<std::basic_string<char> >&, std::set
| | <std::basic_string<char> >&)::<lambda(const string&)>)'
|
| You said : Try prefixing it with std:: as you did with the things from the
| std
| namespace.
|
| I am afraid to say , I don't understand what do you mean here? How can I fix
| it?
Instead of calling
remove_if( ... many arguments ... )
call
std::remove_if( ... many arguments ... )
Dirk
| On Sun, Dec 22, 2013 at 3:14 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
|
|
| On 22 December 2013 at 14:46, contact AG STUDY wrote:
| | I am trying to write an efficient c++ function to remove some words from
| a big
| | vector of strings.
| | Here my code using stl :
| |
| | vector<std::string> stripWords(vector<std::string>& input,
| | std::set<std::string>& toRemove){
| | input.erase(
| | remove_if(input.begin(), input.end(),
| | [&toRemove](const std::string& x) -> bool {
| | return toRemove.find(x) != toRemove.end
| ();
| | }),input.end());
| | }
| |
| | But I get this warning about using lambda expression and this template
| error.
| |
| |
| | warning: lambda expressions only available with -std=c++0x or -std=
| gnu++0x
| | [enabled by default]
|
| R is (by default) not configured to use C++11. We are slowly moving towards
| getting that changed (ie see NEWS in the R-devel sources).
|
| For the time being you can either
|
| i) for all R sessions, set the required option as an argument to
| CXXFLAGS in
| ~/.R/Makevars, or its system-wide equivalent, or another script
| where
| you set environment variables
|
| ii) if you use Rcpp Attributes, use `[[Rcpp::plugins(cpp11)]]` and see
| `help(pluginsAttribute)` for details
|
| iii) for a package use src/Makevars or src/Makevars.win
|
| | error: no matching function for call to 'remove_if(std::vector
| | <std::basic_string<char> >::iterator, std::vector<std::basic_string<char>
| | >::iterator, stripWords(std::vector<std::basic_string<char> >&, std::set
| | <std::basic_string<char> >&)::<lambda(const string&)>)'
|
| Try prefixing it with std:: as you did with the things from the std
| namespace.
|
| Dirk
|
| --
| Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
|
|
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list