Skip to content

std::string 使用迭代器,删除\r的时候,没办法删除干净 #12

Closed
@qd1308504206

Description

@qd1308504206
	std::string src = "\r\nabc\r\r\r\r\r\r\r\r123456\nABCDEF\r\n\r\n\r\r\r\r";
	std::remove_if(src.begin(), src.end(), [](char c) {
		return c == '\r';
	});

	auto size = src.size();


	//我认为应该是 \nabc123456\nABCDEF\n\n
	//实际却是:src = "\nabc123456\nABCDEF\n\n\nABCDEF\r\n\r\n\r\r\r\r"

最近在学习彭老师的课程,学到了 string其实也有迭代器。然后就找了一个remove_if函数试了一下。

请彭老师帮忙解答一下。这是为什么呢?

我的电脑是win10 64位, 使用的是virtual stdio 2022 preview

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions